aboutsummaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorMax Horn2010-03-12 23:02:24 +0000
committerMax Horn2010-03-12 23:02:24 +0000
commit75a3f4a3ecde4837976481fd1b7ea56bef0d0e25 (patch)
treec33a4a556a41652b2bb3f6ad2dd21d46e55d80fc /gui
parent79662919c6358954a020b7d4ed52b6ecf93327f1 (diff)
downloadscummvm-rg350-75a3f4a3ecde4837976481fd1b7ea56bef0d0e25.tar.gz
scummvm-rg350-75a3f4a3ecde4837976481fd1b7ea56bef0d0e25.tar.bz2
scummvm-rg350-75a3f4a3ecde4837976481fd1b7ea56bef0d0e25.zip
Fix from LordHoto for bug #2859401: GUI: GMM crashes when running in 320x200 and 320x240
svn-id: r48248
Diffstat (limited to 'gui')
-rw-r--r--gui/GuiManager.cpp4
-rw-r--r--gui/GuiManager.h4
-rw-r--r--gui/object.cpp16
3 files changed, 16 insertions, 8 deletions
diff --git a/gui/GuiManager.cpp b/gui/GuiManager.cpp
index 931c3078b3..3d02816196 100644
--- a/gui/GuiManager.cpp
+++ b/gui/GuiManager.cpp
@@ -54,6 +54,8 @@ GuiManager::GuiManager() : _redrawStatus(kRedrawDisabled),
_system = g_system;
_lastScreenChangeID = _system->getScreenChangeID();
+ _width = _system->getOverlayWidth();
+ _height = _system->getOverlayHeight();
// Clear the cursor
memset(_cursor, 0xFF, sizeof(_cursor));
@@ -448,6 +450,8 @@ bool GuiManager::checkScreenChange() {
void GuiManager::screenChange() {
_lastScreenChangeID = _system->getScreenChangeID();
+ _width = _system->getOverlayWidth();
+ _height = _system->getOverlayHeight();
// reinit the whole theme
_theme->refresh();
diff --git a/gui/GuiManager.h b/gui/GuiManager.h
index a5e75484c3..892d1aa3ac 100644
--- a/gui/GuiManager.h
+++ b/gui/GuiManager.h
@@ -76,6 +76,9 @@ public:
ThemeEval *xmlEval() { return _theme->getEvaluator(); }
+ int getWidth() const { return _width; }
+ int getHeight() const { return _height; }
+
const Graphics::Font &getFont(ThemeEngine::FontStyle style = ThemeEngine::kFontStyleBold) const { return *(_theme->getFont(style)); }
int getFontHeight(ThemeEngine::FontStyle style = ThemeEngine::kFontStyleBold) const { return _theme->getFontHeight(style); }
int getStringWidth(const Common::String &str, ThemeEngine::FontStyle style = ThemeEngine::kFontStyleBold) const { return _theme->getStringWidth(str, style); }
@@ -104,6 +107,7 @@ protected:
// bool _needRedraw;
RedrawStatus _redrawStatus;
int _lastScreenChangeID;
+ int _width, _height;
DialogStack _dialogStack;
bool _stateIsSaved;
diff --git a/gui/object.cpp b/gui/object.cpp
index f24ce0997e..aaa5a1a4b3 100644
--- a/gui/object.cpp
+++ b/gui/object.cpp
@@ -48,16 +48,16 @@ void GuiObject::reflowLayout() {
if (_x < 0)
error("Widget <%s> has x < 0 (%d)", _name.c_str(), _x);
- if (_x >= g_system->getOverlayWidth())
- error("Widget <%s> has x > %d (%d)", _name.c_str(), g_system->getOverlayWidth(), _x);
- if (_x + _w > g_system->getOverlayWidth())
- error("Widget <%s> has x + w > %d (%d)", _name.c_str(), g_system->getOverlayWidth(), _x + _w);
+ if (_x >= g_gui.getWidth())
+ error("Widget <%s> has x > %d (%d)", _name.c_str(), g_gui.getWidth(), _x);
+ if (_x + _w > g_gui.getWidth())
+ error("Widget <%s> has x + w > %d (%d)", _name.c_str(), g_gui.getWidth(), _x + _w);
if (_y < 0)
error("Widget <%s> has y < 0 (%d)", _name.c_str(), _y);
- if (_y >= g_system->getOverlayHeight())
- error("Widget <%s> has y > %d (%d)", _name.c_str(), g_system->getOverlayHeight(), _y);
- if (_y + _h > g_system->getOverlayHeight())
- error("Widget <%s> has y + h > %d (%d)", _name.c_str(), g_system->getOverlayHeight(), _y + _h);
+ if (_y >= g_gui.getHeight())
+ error("Widget <%s> has y > %d (%d)", _name.c_str(), g_gui.getHeight(), _y);
+ if (_y + _h > g_gui.getHeight())
+ error("Widget <%s> has y + h > %d (%d)", _name.c_str(), g_gui.getHeight(), _y + _h);
}
}