aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/wage/gui-console.cpp5
-rw-r--r--engines/wage/gui.cpp17
-rw-r--r--engines/wage/gui.h3
-rw-r--r--engines/wage/macwindow.cpp10
4 files changed, 16 insertions, 19 deletions
diff --git a/engines/wage/gui-console.cpp b/engines/wage/gui-console.cpp
index 840b8e3ced..ea66826c3b 100644
--- a/engines/wage/gui-console.cpp
+++ b/engines/wage/gui-console.cpp
@@ -285,10 +285,7 @@ void Gui::drawInput() {
if (!_screen.getPixels())
return;
- if (_sceneIsActive) {
- _sceneIsActive = false;
- _bordersDirty = true;
- }
+ _wm.setActive(_consoleWindow->getId());
_out.pop_back();
_lines.pop_back();
diff --git a/engines/wage/gui.cpp b/engines/wage/gui.cpp
index 2446be9945..b9635fb086 100644
--- a/engines/wage/gui.cpp
+++ b/engines/wage/gui.cpp
@@ -151,7 +151,6 @@ Gui::Gui(WageEngine *engine) {
_scene = NULL;
_sceneDirty = true;
_consoleDirty = true;
- _bordersDirty = true;
_menuDirty = true;
_cursorDirty = false;
_consoleFullRedraw = true;
@@ -163,7 +162,6 @@ Gui::Gui(WageEngine *engine) {
_consoleLineHeight = 8; // Dummy value which makes sense
_consoleNumLines = 24; // Dummy value
_builtInFonts = false;
- _sceneIsActive = false;
_cursorX = 0;
_cursorY = 0;
@@ -262,10 +260,12 @@ void Gui::draw() {
_sceneWindow->setDimensions(*_scene->_designBounds);
_sceneWindow->setTitle(_scene->_name);
+ _sceneWindow->setDirty(true);
_consoleWindow->setDimensions(*_scene->_textBounds);
+ _consoleWindow->setDirty(true);
}
- if (_sceneDirty || _bordersDirty) {
+ if (_sceneDirty) {
drawDesktop();
_wm.setFullRefresh(true);
}
@@ -287,13 +287,12 @@ void Gui::draw() {
_sceneDirty = false;
_consoleDirty = false;
- _bordersDirty = false;
_menuDirty = false;
_consoleFullRedraw = false;
}
void Gui::drawScene() {
- if (!_sceneDirty && !_bordersDirty)
+ if (!_sceneDirty)
return;
_scene->paint(_sceneWindow->getSurface(), 0, 0);
@@ -304,11 +303,6 @@ void Gui::drawScene() {
_menuDirty = true;
_consoleFullRedraw = true;
- _sceneArea.left = _scene->_designBounds->left + kBorderWidth - 2;
- _sceneArea.top = _scene->_designBounds->top + kBorderWidth - 2;
- _sceneArea.setWidth(_scene->_designBounds->width() - 2 * kBorderWidth);
- _sceneArea.setHeight(_scene->_designBounds->height() - 2 * kBorderWidth);
-
_consoleTextArea.left = _scene->_textBounds->left + kBorderWidth - 2;
_consoleTextArea.top = _scene->_textBounds->top + kBorderWidth - 2;
_consoleTextArea.setWidth(_scene->_textBounds->width() - 2 * kBorderWidth);
@@ -342,7 +336,7 @@ bool Gui::processSceneEvents(WindowClick click, Common::Event &event) {
// Render console
void Gui::drawConsole() {
- if (!_consoleDirty && !_consoleFullRedraw && !_bordersDirty && !_sceneDirty)
+ if (!_consoleDirty && !_consoleFullRedraw && !_sceneDirty)
return;
renderConsole(_consoleWindow->getSurface(), Common::Rect(kBorderWidth - 2, kBorderWidth - 2,
@@ -545,7 +539,6 @@ void Gui::mouseUp(int x, int y) {
if (_menu->mouseRelease(x, y)) {
_sceneDirty = true;
_consoleDirty = true;
- _bordersDirty = true;
_menuDirty = true;
}
diff --git a/engines/wage/gui.h b/engines/wage/gui.h
index 6783b2efdd..c337b1f9f3 100644
--- a/engines/wage/gui.h
+++ b/engines/wage/gui.h
@@ -158,7 +158,6 @@ private:
Menu *_menu;
bool _sceneDirty;
bool _consoleDirty;
- bool _bordersDirty;
Common::StringArray _out;
Common::StringArray _lines;
@@ -167,8 +166,6 @@ private:
uint _consoleNumLines;
bool _consoleFullRedraw;
- Common::Rect _sceneArea;
- bool _sceneIsActive;
bool _cursorIsArrow;
bool _inTextSelection;
diff --git a/engines/wage/macwindow.cpp b/engines/wage/macwindow.cpp
index 01767d7732..7b913355ac 100644
--- a/engines/wage/macwindow.cpp
+++ b/engines/wage/macwindow.cpp
@@ -91,12 +91,20 @@ void MacWindow::resize(int w, int h) {
_dims.setWidth(w);
_dims.setHeight(h);
+
+ _contentIsDirty = true;
+ _borderIsDirty = true;
}
void MacWindow::move(int x, int y) {
+ if (_dims.left == x && _dims.top == y)
+ return;
+
_dims.moveTo(x, y);
_innerDims.setWidth(0); // Invalidate rect
+
+ _contentIsDirty = true;
}
void MacWindow::setDimensions(const Common::Rect &r) {
@@ -113,6 +121,8 @@ bool MacWindow::draw(Graphics::ManagedSurface *g, bool forceRedraw) {
if (_borderIsDirty || forceRedraw)
drawBorder();
+ _contentIsDirty = false;
+
// Compose
_composeSurface.blitFrom(_surface, Common::Rect(0, 0, _surface.w - 2, _surface.h - 2), Common::Point(2, 2));
_composeSurface.transBlitFrom(_borderSurface, kColorGreen);