[Scummvm-git-logs] scummvm master -> e7132897fdd4d3569e1f1653a8e59af0f54335d6
aquadran
aquadran at gmail.com
Mon Oct 26 20:18:15 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
e7132897fd GUI: Fix keymap of virtual keyboard if no GUI opened before (#2555)
Commit: e7132897fdd4d3569e1f1653a8e59af0f54335d6
https://github.com/scummvm/scummvm/commit/e7132897fdd4d3569e1f1653a8e59af0f54335d6
Author: LMerckx (laurent-merckx at skynet.be)
Date: 2020-10-26T21:18:12+01:00
Commit Message:
GUI: Fix keymap of virtual keyboard if no GUI opened before (#2555)
Changed paths:
backends/vkeybd/virtual-keyboard.cpp
backends/vkeybd/virtual-keyboard.h
diff --git a/backends/vkeybd/virtual-keyboard.cpp b/backends/vkeybd/virtual-keyboard.cpp
index 74cf1f2631..164e404591 100644
--- a/backends/vkeybd/virtual-keyboard.cpp
+++ b/backends/vkeybd/virtual-keyboard.cpp
@@ -24,6 +24,7 @@
#ifdef ENABLE_VKEYBD
+#include "gui/gui-manager.h"
#include "backends/vkeybd/virtual-keyboard.h"
#include "backends/keymapper/keymapper.h"
@@ -223,6 +224,21 @@ void VirtualKeyboard::handleMouseUp(int16 x, int16 y) {
_kbdGUI->endDrag();
}
+// If no GUI opened before the virtual keyboard, kKeymapTypeGui is not yet initialized
+// Check and do it if needed
+void VirtualKeyboard::initKeymap() {
+ using namespace Common;
+
+ Keymapper *mapper = _system->getEventManager()->getKeymapper();
+
+ // Do not try to recreate same keymap over again
+ if (mapper->getKeymap(kGuiKeymapName) != 0)
+ return;
+
+ Keymap *guiMap = g_gui.getKeymap();
+ mapper->addGlobalKeymap(guiMap);
+}
+
void VirtualKeyboard::show() {
if (!_loaded) {
debug(1, "VirtualKeyboard::show() - Virtual keyboard not loaded");
@@ -234,6 +250,7 @@ void VirtualKeyboard::show() {
switchMode(_initialMode);
{
+ initKeymap();
KeymapTypeEnabler guiKeymap(_system->getEventManager()->getKeymapper(), Keymap::kKeymapTypeGui);
_kbdGUI->run();
}
diff --git a/backends/vkeybd/virtual-keyboard.h b/backends/vkeybd/virtual-keyboard.h
index 38139e2ad8..6be4c31af8 100644
--- a/backends/vkeybd/virtual-keyboard.h
+++ b/backends/vkeybd/virtual-keyboard.h
@@ -242,6 +242,7 @@ protected:
bool checkModeResolutions();
void switchMode(Mode *newMode);
void switchMode(const String &newMode);
+ void initKeymap();
void handleMouseDown(int16 x, int16 y);
void handleMouseUp(int16 x, int16 y);
String findArea(int16 x, int16 y);
More information about the Scummvm-git-logs
mailing list