aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gui/ListWidget.cpp6
-rw-r--r--scumm/dialogs.cpp2
-rw-r--r--sword1/control.cpp4
-rw-r--r--sword2/controls.cpp6
4 files changed, 10 insertions, 8 deletions
diff --git a/gui/ListWidget.cpp b/gui/ListWidget.cpp
index bb785e8212..801df816c3 100644
--- a/gui/ListWidget.cpp
+++ b/gui/ListWidget.cpp
@@ -19,6 +19,7 @@
*/
#include "common/stdafx.h"
+#include "common/system.h"
#include "gui/ListWidget.h"
#include "gui/ScrollBarWidget.h"
#include "gui/dialog.h"
@@ -85,6 +86,7 @@ void ListWidget::setList(const StringList &list) {
_currentPos = 0;
_selectedItem = -1;
_editMode = false;
+ g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
scrollBarRecalc();
}
@@ -278,6 +280,7 @@ bool ListWidget::handleKeyUp(uint16 ascii, int keycode, int modifiers) {
void ListWidget::lostFocusWidget() {
// If we loose focus, we simply forget the user changes
_editMode = false;
+ g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
drawCaret(true);
draw();
}
@@ -381,6 +384,7 @@ void ListWidget::startEditMode() {
_editMode = true;
setEditString(_list[_selectedItem]);
draw();
+ g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
}
}
@@ -390,6 +394,7 @@ void ListWidget::endEditMode() {
// send a message that editing finished with a return/enter key press
_editMode = false;
_list[_selectedItem] = _editString;
+ g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
sendCommand(kListItemActivatedCmd, _selectedItem);
}
@@ -399,6 +404,7 @@ void ListWidget::abortEditMode() {
_editMode = false;
//drawCaret(true);
//draw();
+ g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
}
} // End of namespace GUI
diff --git a/scumm/dialogs.cpp b/scumm/dialogs.cpp
index 627d31b2b1..d3499a9f16 100644
--- a/scumm/dialogs.cpp
+++ b/scumm/dialogs.cpp
@@ -582,9 +582,7 @@ void MainMenuDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 dat
void MainMenuDialog::save() {
int idx;
_saveDialog->setList(generateSavegameList(_vm, true));
- g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
idx = _saveDialog->runModal();
- g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
if (idx >= 0) {
const String &result = _saveDialog->getResultString();
char buffer[20];
diff --git a/sword1/control.cpp b/sword1/control.cpp
index 6cb75e8222..0beda6890f 100644
--- a/sword1/control.cpp
+++ b/sword1/control.cpp
@@ -276,10 +276,10 @@ uint8 Control::runPanel(void) {
break;
case BUTTON_SAVE_PANEL:
if (fullRefresh) {
- _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
setupSaveRestorePanel(true);
}
if (_selectedSavegame < 255) {
+ _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
bool visible = _cursorVisible;
if (_cursorTick == 0)
_cursorVisible = true;
@@ -291,6 +291,8 @@ uint8 Control::runPanel(void) {
showSavegameNames();
if (++_cursorTick > 5)
_cursorTick = 0;
+ } else {
+ _system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
}
break;
case BUTTON_RESTORE_PANEL:
diff --git a/sword2/controls.cpp b/sword2/controls.cpp
index 7ff8df39b5..4dc5b65f91 100644
--- a/sword2/controls.cpp
+++ b/sword2/controls.cpp
@@ -1062,6 +1062,7 @@ public:
void setEditable(bool editable) {
_editable = editable;
+ _vm->_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, editable);
}
bool isEditable() {
@@ -1386,14 +1387,9 @@ void SaveRestoreDialog::setResult(int result) {
}
int SaveRestoreDialog::runModal() {
- if (_mode == kSaveDialog)
- _vm->_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
int result = Dialog::runModal();
- if (_mode == kSaveDialog)
- _vm->_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
-
if (result) {
switch (_mode) {
case kSaveDialog: