diff options
-rw-r--r-- | gui/ListWidget.cpp | 6 | ||||
-rw-r--r-- | scumm/dialogs.cpp | 2 | ||||
-rw-r--r-- | sword1/control.cpp | 4 | ||||
-rw-r--r-- | sword2/controls.cpp | 6 |
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: |