[Scummvm-git-logs] scummvm master -> 3f7112d5c9a97aead70616ab5ecde5f0efe41968
sev-
sev at scummvm.org
Thu Oct 3 21:51:37 CEST 2019
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
c6930f2f78 GRAPHICS: MACGUI: Implement hovering out of menus behaviour
55c5664ced GRPAHICS: MACGUI: Avoid overdraw
3f7112d5c9 GRAPHICS: MACGUI: Refactor some code
Commit: c6930f2f78471e1af3e70967b1f3f7142c233bc4
https://github.com/scummvm/scummvm/commit/c6930f2f78471e1af3e70967b1f3f7142c233bc4
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-10-03T21:51:28+02:00
Commit Message:
GRAPHICS: MACGUI: Implement hovering out of menus behaviour
Changed paths:
graphics/macgui/macmenu.cpp
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index 3bcfdcc..61fa02b 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -837,7 +837,7 @@ bool MacMenu::mouseClick(int x, int y) {
if (_menustack.size() > 0 && _menustack.back()->bbox.contains(x, y)) {
MacMenuSubMenu *it = _menustack.back();
- int numSubItem = (y - it->bbox.top) / kMenuDropdownItemHeight;
+ int numSubItem = MIN<int>((y - it->bbox.top) / kMenuDropdownItemHeight, it->subitems.size() - 1);
if (numSubItem != _activeSubItem) {
_activeSubItem = numSubItem;
@@ -851,32 +851,36 @@ bool MacMenu::mouseClick(int x, int y) {
return true;
}
- if (_activeSubItem != -1) {
- if (_menustack.back()->subitems[_activeSubItem]->submenu != nullptr) {
- if (_menustack.back()->subitems[_activeSubItem]->submenu->bbox.contains(x, y)) {
- _menustack.push_back(_menustack.back()->subitems[_activeSubItem]->submenu);
+ if (_activeSubItem != -1 && _menustack.back()->subitems[_activeSubItem]->submenu != nullptr) {
+ if (_menustack.back()->subitems[_activeSubItem]->submenu->bbox.contains(x, y)) {
+ _menustack.push_back(_menustack.back()->subitems[_activeSubItem]->submenu);
- _activeSubItem = 0;
- _contentIsDirty = true;
+ _activeSubItem = 0;
+ _contentIsDirty = true;
- _menustack.back()->highlight = 0;
+ _menustack.back()->highlight = 0;
- return true;
- }
+ return true;
}
+ }
- if (_menustack.size() > 1) {
- if (_menustack[_menustack.size() - 2]->bbox.contains(x, y)) {
- _menustack.back()->highlight = -1; // Erase it for the closed popup
+ if (_menustack.size() > 1) {
+ if (_menustack[_menustack.size() - 2]->bbox.contains(x, y)) {
+ _menustack.back()->highlight = -1; // Erase it for the closed popup
- _menustack.pop_back();
+ _menustack.pop_back();
- _activeSubItem = _menustack.back()->highlight;
+ MacMenuSubMenu *menu = _menustack.back();
- _contentIsDirty = true;
+ _activeSubItem = MIN<int>((y - menu->bbox.top) / kMenuDropdownItemHeight, menu->subitems.size() - 1);
- return true;
- }
+ menu->highlight = _activeSubItem;
+
+ renderSubmenu(menu);
+
+ _contentIsDirty = true;
+
+ return true;
}
}
Commit: 55c5664cedcf978560ea3277a99a92a181be8021
https://github.com/scummvm/scummvm/commit/55c5664cedcf978560ea3277a99a92a181be8021
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-10-03T21:51:28+02:00
Commit Message:
GRPAHICS: MACGUI: Avoid overdraw
Changed paths:
graphics/macgui/macmenu.cpp
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index 61fa02b..9d05c76 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -836,15 +836,13 @@ bool MacMenu::mouseClick(int x, int y) {
return false;
if (_menustack.size() > 0 && _menustack.back()->bbox.contains(x, y)) {
- MacMenuSubMenu *it = _menustack.back();
- int numSubItem = MIN<int>((y - it->bbox.top) / kMenuDropdownItemHeight, it->subitems.size() - 1);
+ MacMenuSubMenu *menu = _menustack.back();
+ int numSubItem = MIN<int>((y - menu->bbox.top) / kMenuDropdownItemHeight, menu->subitems.size() - 1);
if (numSubItem != _activeSubItem) {
_activeSubItem = numSubItem;
+ menu->highlight = _activeSubItem;
- it->highlight = _activeSubItem;
-
- renderSubmenu(it);
_contentIsDirty = true;
}
@@ -873,11 +871,8 @@ bool MacMenu::mouseClick(int x, int y) {
MacMenuSubMenu *menu = _menustack.back();
_activeSubItem = MIN<int>((y - menu->bbox.top) / kMenuDropdownItemHeight, menu->subitems.size() - 1);
-
menu->highlight = _activeSubItem;
- renderSubmenu(menu);
-
_contentIsDirty = true;
return true;
@@ -888,7 +883,6 @@ bool MacMenu::mouseClick(int x, int y) {
_activeSubItem = -1;
if (_menustack.size()) {
- renderSubmenu(_menustack.back());
_contentIsDirty = true;
}
Commit: 3f7112d5c9a97aead70616ab5ecde5f0efe41968
https://github.com/scummvm/scummvm/commit/3f7112d5c9a97aead70616ab5ecde5f0efe41968
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-10-03T21:51:28+02:00
Commit Message:
GRAPHICS: MACGUI: Refactor some code
Changed paths:
graphics/macgui/macmenu.cpp
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index 9d05c76..7ed4f31 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -102,6 +102,8 @@ struct MacMenuSubMenu {
for (uint i = 0; i < subitems.size(); i++)
delete subitems[i];
}
+
+ int ytoItem(int y) { return MIN<int>((y - bbox.top) / kMenuDropdownItemHeight, subitems.size() - 1); }
};
MacMenuSubItem::~MacMenuSubItem() {
@@ -837,7 +839,7 @@ bool MacMenu::mouseClick(int x, int y) {
if (_menustack.size() > 0 && _menustack.back()->bbox.contains(x, y)) {
MacMenuSubMenu *menu = _menustack.back();
- int numSubItem = MIN<int>((y - menu->bbox.top) / kMenuDropdownItemHeight, menu->subitems.size() - 1);
+ int numSubItem = menu->ytoItem(y);
if (numSubItem != _activeSubItem) {
_activeSubItem = numSubItem;
@@ -870,8 +872,7 @@ bool MacMenu::mouseClick(int x, int y) {
MacMenuSubMenu *menu = _menustack.back();
- _activeSubItem = MIN<int>((y - menu->bbox.top) / kMenuDropdownItemHeight, menu->subitems.size() - 1);
- menu->highlight = _activeSubItem;
+ _activeSubItem = menu->highlight = menu->ytoItem(y);
_contentIsDirty = true;
More information about the Scummvm-git-logs
mailing list