[Scummvm-git-logs] scummvm master -> c79abfcd123a448210ef430e32f3e9050fff3469

lephilousophe noreply at scummvm.org
Sat Nov 9 12:11:15 UTC 2024


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
72dcdcc9c6 ANDROID: Allow showing the soft keyboard when a HW is present
c79abfcd12 ANDROID: In GUI don't move mouse cursor when displaying the keyboard


Commit: 72dcdcc9c646d9ab5a73e8d10db1d756d01599dd
    https://github.com/scummvm/scummvm/commit/72dcdcc9c646d9ab5a73e8d10db1d756d01599dd
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2024-11-09T13:10:57+01:00

Commit Message:
ANDROID: Allow showing the soft keyboard when a HW is present

When a hardware keybaord is present, Android may display the IME
dependng on a (secure) user setting.
Even if this setting is not documented, as it's here since 2014, it
seems quite safe to use.
In addition, long pressing the input method icon will forcibly display
the soft keyboard even if a HW keyboard is present.

Changed paths:
    backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java


diff --git a/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java b/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
index b50f2dd55fd..f56f63efd69 100644
--- a/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
+++ b/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
@@ -1,8 +1,5 @@
 package org.scummvm.scummvm;
 
-import static android.content.res.Configuration.HARDKEYBOARDHIDDEN_NO;
-import static android.content.res.Configuration.KEYBOARD_QWERTY;
-
 import android.Manifest;
 import android.annotation.TargetApi;
 import android.app.Activity;
@@ -27,6 +24,7 @@ import android.os.Environment;
 import android.os.Process;
 import android.os.SystemClock;
 import android.provider.DocumentsContract;
+import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.DisplayMetrics;
 import android.util.Log;
@@ -150,9 +148,12 @@ public class ScummVMActivity extends Activity implements OnKeyboardVisibilityLis
 	}
 
 	private boolean isHWKeyboardConnected() {
+		// This setting is not documented but that's what is used on Android since 2014
+		final String SHOW_IME_WITH_HARD_KEYBOARD = "show_ime_with_hard_keyboard";
 		final Configuration config = getResources().getConfiguration();
-		return config.keyboard == KEYBOARD_QWERTY
-			&& config.hardKeyboardHidden == HARDKEYBOARDHIDDEN_NO;
+		return config.keyboard == Configuration.KEYBOARD_QWERTY &&
+			config.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO &&
+			Settings.Secure.getInt(getContentResolver(), SHOW_IME_WITH_HARD_KEYBOARD, 0) == 0;
 	}
 
 	public boolean isKeyboardOverlayShown() {
@@ -535,11 +536,11 @@ public class ScummVMActivity extends Activity implements OnKeyboardVisibilityLis
 		}
 	}
 
-	public void showScreenKeyboard() {
+	public void showScreenKeyboard(boolean force) {
 		final boolean bGlobalsCompatibilityHacksTextInputEmulatesHwKeyboard = true;
 		final int dGlobalsTextInputKeyboard = 1;
 
-		if (isHWKeyboardConnected()) {
+		if (!force && isHWKeyboardConnected()) {
 			return;
 		}
 
@@ -581,7 +582,7 @@ public class ScummVMActivity extends Activity implements OnKeyboardVisibilityLis
 		if (isScreenKeyboardShown()) {
 			hideScreenKeyboard();
 		} else {
-			showScreenKeyboard();
+			showScreenKeyboard(true);
 		}
 	}
 
@@ -760,7 +761,7 @@ public class ScummVMActivity extends Activity implements OnKeyboardVisibilityLis
 				public void run() {
 					//showKeyboard(enable);
 					if (enable) {
-						showScreenKeyboard();
+						showScreenKeyboard(false);
 					} else {
 						hideScreenKeyboard();
 					}


Commit: c79abfcd123a448210ef430e32f3e9050fff3469
    https://github.com/scummvm/scummvm/commit/c79abfcd123a448210ef430e32f3e9050fff3469
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2024-11-09T13:10:57+01:00

Commit Message:
ANDROID: In GUI don't move mouse cursor when displaying the keyboard

When displaying the soft keyboard, only the game surface is moved.
So, that's the only surface which should move the mouse.

Changed paths:
    backends/graphics/android/android-graphics.cpp


diff --git a/backends/graphics/android/android-graphics.cpp b/backends/graphics/android/android-graphics.cpp
index 9bf024c0780..33cb865dced 100644
--- a/backends/graphics/android/android-graphics.cpp
+++ b/backends/graphics/android/android-graphics.cpp
@@ -166,12 +166,12 @@ void AndroidGraphicsManager::displayMessageOnOSD(const Common::U32String &msg) {
 }
 
 void AndroidGraphicsManager::recalculateDisplayAreas() {
-	Common::Rect oldDrawRect = _gameDrawRect;
+	Common::Rect oldDrawRect = _activeArea.drawRect;
 
 	OpenGLGraphicsManager::recalculateDisplayAreas();
 
-	int offsetX = _gameDrawRect.left - oldDrawRect.left;
-	int offsetY = _gameDrawRect.top - oldDrawRect.top;
+	int offsetX = _activeArea.drawRect.left - oldDrawRect.left;
+	int offsetY = _activeArea.drawRect.top - oldDrawRect.top;
 
 	int newX = _cursorX + offsetX;
 	int newY = _cursorY + offsetY;




More information about the Scummvm-git-logs mailing list