[Scummvm-git-logs] scummvm master -> 447658fdb54940956ae3a47590bef066683ca9ee

criezy criezy at scummvm.org
Thu Aug 27 22:38:00 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:
447658fdb5 ULTIMA8: Improve virtual keyboard handling


Commit: 447658fdb54940956ae3a47590bef066683ca9ee
    https://github.com/scummvm/scummvm/commit/447658fdb54940956ae3a47590bef066683ca9ee
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2020-08-27T23:36:50+01:00

Commit Message:
ULTIMA8: Improve virtual keyboard handling

The virtual keyboard is now only enabled when the TextEdit gump
gets the focus.

Changed paths:
    engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
    engines/ultima/ultima8/gumps/widgets/edit_widget.h
    engines/ultima/ultima8/ultima8.cpp


diff --git a/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp b/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
index de3ad17a4a..c8f175e2a2 100644
--- a/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
+++ b/engines/ultima/ultima8/gumps/widgets/edit_widget.cpp
@@ -258,5 +258,9 @@ bool EditWidget::OnTextInput(int unicode) {
 	return true;
 }
 
+void EditWidget::OnFocus(bool gain) {
+	g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, gain);
+}
+
 } // End of namespace Ultima8
 } // End of namespace Ultima
diff --git a/engines/ultima/ultima8/gumps/widgets/edit_widget.h b/engines/ultima/ultima8/gumps/widgets/edit_widget.h
index 15bfd2ffd9..fc527c249d 100644
--- a/engines/ultima/ultima8/gumps/widgets/edit_widget.h
+++ b/engines/ultima/ultima8/gumps/widgets/edit_widget.h
@@ -56,6 +56,8 @@ public:
 	bool OnKeyUp(int key) override;
 	bool OnTextInput(int unicode) override;
 
+	void OnFocus(bool gain) override;
+
 	//! get the current text
 	Std::string getText() const {
 		return _text;
diff --git a/engines/ultima/ultima8/ultima8.cpp b/engines/ultima/ultima8/ultima8.cpp
index 4d7eb88439..faefa8652c 100644
--- a/engines/ultima/ultima8/ultima8.cpp
+++ b/engines/ultima/ultima8/ultima8.cpp
@@ -390,8 +390,6 @@ void Ultima8Engine::shutdownGame(bool reloading) {
 
 	// Save config here....
 
-	if (!_textModes.empty())
-		g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
 	_textModes.clear();
 
 	// reset mouse cursor
@@ -738,8 +736,6 @@ bool Ultima8Engine::LoadConsoleFont(Std::string confontini) {
 }
 
 void Ultima8Engine::enterTextMode(Gump *gump) {
-	if (_textModes.empty())
-		g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
 	if (!_textModes.empty()) {
 		_textModes.remove(gump->getObjId());
 	}
@@ -749,8 +745,6 @@ void Ultima8Engine::enterTextMode(Gump *gump) {
 void Ultima8Engine::leaveTextMode(Gump *gump) {
 	if (!_textModes.empty())
 		_textModes.remove(gump->getObjId());
-	if (_textModes.empty())
-		g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
 }
 
 void Ultima8Engine::handleEvent(const Common::Event &event) {
@@ -1049,8 +1043,6 @@ void Ultima8Engine::resetEngine() {
 	_scalerGump = nullptr;
 	_inverterGump = nullptr;
 
-	if (!_textModes.empty())
-		g_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, false);
 	_textModes.clear();
 
 	// reset mouse cursor




More information about the Scummvm-git-logs mailing list