aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Schickel2009-01-21 15:23:30 +0000
committerJohannes Schickel2009-01-21 15:23:30 +0000
commitceefbd19b97fe50c2a3721c303fcd087f2762b5b (patch)
tree7c68caa536ac249aceb5227b5edf6645621cd41b
parent980917e54588f36be928a9ed32287c3cc4927783 (diff)
downloadscummvm-rg350-ceefbd19b97fe50c2a3721c303fcd087f2762b5b.tar.gz
scummvm-rg350-ceefbd19b97fe50c2a3721c303fcd087f2762b5b.tar.bz2
scummvm-rg350-ceefbd19b97fe50c2a3721c303fcd087f2762b5b.zip
Fixed vkbd drawing and GUI drawing on screen change while vkbd is shown.
svn-id: r35979
-rw-r--r--backends/vkeybd/virtual-keyboard-gui.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/backends/vkeybd/virtual-keyboard-gui.cpp b/backends/vkeybd/virtual-keyboard-gui.cpp
index b26b34068a..a4b6d63aad 100644
--- a/backends/vkeybd/virtual-keyboard-gui.cpp
+++ b/backends/vkeybd/virtual-keyboard-gui.cpp
@@ -248,12 +248,19 @@ void VirtualKeyboardGUI::move(int16 x, int16 y) {
}
void VirtualKeyboardGUI::screenChanged() {
+ g_gui.checkScreenChange();
+
_lastScreenChanged = _system->getScreenChangeID();
int16 newScreenW = _system->getOverlayWidth();
int16 newScreenH = _system->getOverlayHeight();
+
if (_screenW != newScreenW || _screenH != newScreenH) {
_screenW = newScreenW;
_screenH = newScreenH;
+
+ _overlayBackup.create(_screenW, _screenH, sizeof(OverlayColor));
+ _system->grabOverlay((OverlayColor*)_overlayBackup.pixels, _overlayBackup.w);
+
if (!_kbd->checkModeResolutions()) {
_displaying = false;
return;