[Scummvm-git-logs] scummvm master -> 60d9b79c0f599555da7a137722e336a9dfef3d2b
sev-
sev at scummvm.org
Fri May 21 08:51:10 UTC 2021
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:
68099e5ebe GRAPHICS: MACGUI: fix the wm was not correctly reflushed when changing the menu items
1b211371cf GRAPHICS: MACGUI: fix the offset in macmenu
60d9b79c0f GRAPHICS: MACGUI: add intersection check with macmenu and macwindow
Commit: 68099e5ebee453c9b4b66d6fdff44d25d123cd68
https://github.com/scummvm/scummvm/commit/68099e5ebee453c9b4b66d6fdff44d25d123cd68
Author: ysj1173886760 (1173886760 at qq.com)
Date: 2021-05-21T10:51:07+02:00
Commit Message:
GRAPHICS: MACGUI: fix the wm was not correctly reflushed when changing the menu items
Changed paths:
graphics/macgui/macmenu.cpp
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index c042e6f529..866eb92cc4 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -1052,6 +1052,7 @@ bool MacMenu::mouseClick(int x, int y) {
_menustack.pop_back(); // Drop previous submenu
_contentIsDirty = true;
+ _wm->setFullRefresh(true);
}
}
Commit: 1b211371cf4e9f12843059a82b77ccc36837c38b
https://github.com/scummvm/scummvm/commit/1b211371cf4e9f12843059a82b77ccc36837c38b
Author: ysj1173886760 (1173886760 at qq.com)
Date: 2021-05-21T10:51:07+02:00
Commit Message:
GRAPHICS: MACGUI: fix the offset in macmenu
Changed paths:
graphics/macgui/macmenu.cpp
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index 866eb92cc4..4ba1a093aa 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -890,7 +890,7 @@ void MacMenu::renderSubmenu(MacMenuSubMenu *menu, bool recursive) {
_screen.hLine(r->left + 3, r->bottom + 1, r->right + 1, _wm->_colorBlack);
int y = r->top + 1;
- int x = _align == kTextAlignRight ? -kMenuWin95LeftDropdownPadding: kMenuWin95LeftDropdownPadding;
+ int x = _align == kTextAlignRight ? -_menuRightDropdownPadding: _menuLeftDropdownPadding;
x += r->left;
for (uint i = 0; i < menu->items.size(); i++) {
Commit: 60d9b79c0f599555da7a137722e336a9dfef3d2b
https://github.com/scummvm/scummvm/commit/60d9b79c0f599555da7a137722e336a9dfef3d2b
Author: ysj1173886760 (1173886760 at qq.com)
Date: 2021-05-21T10:51:07+02:00
Commit Message:
GRAPHICS: MACGUI: add intersection check with macmenu and macwindow
Changed paths:
graphics/macgui/macmenu.cpp
graphics/macgui/macmenu.h
graphics/macgui/macwindowmanager.cpp
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index 4ba1a093aa..85ea56e719 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -1038,6 +1038,15 @@ bool MacMenu::keyEvent(Common::Event &event) {
return false;
}
+bool MacMenu::checkIntersects(Common::Rect &rect) {
+ if (_bbox.intersects(rect))
+ return true;
+ for (uint i = 0; i < _menustack.size(); i++)
+ if (_menustack[i]->bbox.intersects(rect))
+ return true;
+ return false;
+}
+
bool MacMenu::mouseClick(int x, int y) {
if (_bbox.contains(x, y)) {
for (uint i = 0; i < _items.size(); i++) {
diff --git a/graphics/macgui/macmenu.h b/graphics/macgui/macmenu.h
index 36339f080b..5efb5011e4 100644
--- a/graphics/macgui/macmenu.h
+++ b/graphics/macgui/macmenu.h
@@ -95,6 +95,8 @@ public:
void closeMenu();
+ bool checkIntersects(Common::Rect &rect);
+
Common::Rect _bbox;
private:
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index 9f55fd1988..08a2c76197 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -657,7 +657,19 @@ void MacWindowManager::draw() {
// Menu is drawn on top of everything and always
if (_menu && !(_mode & kWMModeFullscreen)) {
- _menu->draw(_screen, _fullRefresh);
+ if (_fullRefresh)
+ _menu->draw(_screen, _fullRefresh);
+ else {
+ // add intersection check with menu
+ bool menuRedraw = false;
+ for (Common::Array<Common::Rect>::iterator dirty = dirtyRects.begin(); dirty != dirtyRects.end(); dirty++) {
+ if (_menu->checkIntersects(*dirty)) {
+ menuRedraw = true;
+ break;
+ }
+ }
+ _menu->draw(_screen, menuRedraw);
+ }
}
_fullRefresh = false;
More information about the Scummvm-git-logs
mailing list