[Scummvm-git-logs] scummvm master -> 87a76f4a569c76d6be1161dcc21a1c5aebc46781
antoniou79
a.antoniou79 at gmail.com
Sat Oct 17 16:21:08 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:
87a76f4a56 ANDROID: Fix shifted keys and key combos
Commit: 87a76f4a569c76d6be1161dcc21a1c5aebc46781
https://github.com/scummvm/scummvm/commit/87a76f4a569c76d6be1161dcc21a1c5aebc46781
Author: antoniou (a.antoniou79 at gmail.com)
Date: 2020-10-17T19:20:58+03:00
Commit Message:
ANDROID: Fix shifted keys and key combos
Changed paths:
backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
backends/platform/android/org/scummvm/scummvm/ScummVMEventsBase.java
dists/android/res/xml/qwerty.xml
dists/android/res/xml/qwerty_alt.xml
dists/android/res/xml/qwerty_alt_shift.xml
dists/android/res/xml/qwerty_shift.xml
diff --git a/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java b/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
index b8c7d21cfb..52486c7804 100644
--- a/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
+++ b/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
@@ -20,6 +20,7 @@ import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
+import android.os.SystemClock;
import android.util.DisplayMetrics;
import android.util.Log;
import android.util.TypedValue;
@@ -51,6 +52,7 @@ import java.io.OutputStream;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;
@@ -147,6 +149,7 @@ public class ScummVMActivity extends Activity implements OnKeyboardVisibilityLis
public boolean shift = false;
public boolean alt = false;
public final TreeSet<Integer> stickyKeys = new TreeSet<>();
+ public long mEventTime = -1;
public BuiltInKeyboardView(Context context, android.util.AttributeSet attrs) {
super(context, attrs);
@@ -162,6 +165,76 @@ public class ScummVMActivity extends Activity implements OnKeyboardVisibilityLis
return false;
}
+ public int getCompiledMetaState() {
+ int retCompiledMetaState = 0;
+ // search in the list of currently "ON" sticky keys to set the meta flags
+ for (int stickyActiveKeyCode : stickyKeys) {
+ switch (stickyActiveKeyCode) {
+ case KeyEvent.KEYCODE_SHIFT_LEFT:
+ retCompiledMetaState|= KeyEvent.META_SHIFT_LEFT_ON;
+ break;
+ case KeyEvent.KEYCODE_SHIFT_RIGHT:
+ retCompiledMetaState|= KeyEvent.META_SHIFT_RIGHT_ON;
+ break;
+ case KeyEvent.KEYCODE_CTRL_LEFT:
+ retCompiledMetaState|= KeyEvent.META_CTRL_LEFT_ON;
+ break;
+ case KeyEvent.KEYCODE_CTRL_RIGHT:
+ retCompiledMetaState|= KeyEvent.META_CTRL_RIGHT_ON;
+ break;
+ case KeyEvent.KEYCODE_ALT_LEFT:
+ retCompiledMetaState|= KeyEvent.META_ALT_LEFT_ON;
+ break;
+ case KeyEvent.KEYCODE_ALT_RIGHT:
+ retCompiledMetaState|= KeyEvent.META_ALT_RIGHT_ON;
+ break;
+ case KeyEvent.KEYCODE_META_LEFT:
+ retCompiledMetaState|= KeyEvent.META_META_LEFT_ON;
+ break;
+ case KeyEvent.KEYCODE_META_RIGHT:
+ retCompiledMetaState|= KeyEvent.META_META_RIGHT_ON;
+ break;
+ case KeyEvent.KEYCODE_CAPS_LOCK:
+ retCompiledMetaState|= KeyEvent.META_CAPS_LOCK_ON;
+ break;
+ case KeyEvent.KEYCODE_NUM_LOCK:
+ retCompiledMetaState|= KeyEvent.META_NUM_LOCK_ON;
+ break;
+ case KeyEvent.KEYCODE_SCROLL_LOCK:
+ retCompiledMetaState|= KeyEvent.META_SCROLL_LOCK_ON;
+ break;
+ case KeyEvent.KEYCODE_SYM:
+ // TODO Do we have or need a SYM key?
+ retCompiledMetaState|= KeyEvent.META_SYM_ON;
+ break;
+ default: break;
+ }
+ }
+
+ if (shift && !alt) {
+ retCompiledMetaState |= KeyEvent.META_SHIFT_LEFT_ON;
+ }
+ return retCompiledMetaState;
+ }
+
+ public void recheckStickyKeys() {
+ // setting sticky keys to their proper on or off state
+ // h
+ boolean atLeastOneStickyKeyWasChanged = false;
+ for (CustomKeyboard.CustomKey k: getKeyboard().getKeys()) {
+ if (stickyKeys.contains(k.codes[0]) && !k.on) {
+ k.on = true;
+ atLeastOneStickyKeyWasChanged = true;
+ } else if (!stickyKeys.contains(k.codes[0]) && k.sticky && k.on) {
+ k.on = false;
+ atLeastOneStickyKeyWasChanged = true;
+ }
+ }
+ if (atLeastOneStickyKeyWasChanged) {
+ invalidateAllKeys();
+ }
+ }
+
public void ChangeKeyboard() {
// Called when bringing up the keyboard
// or pressing one of the special keyboard keys that change the layout (eg "123...")
@@ -170,12 +243,12 @@ public class ScummVMActivity extends Activity implements OnKeyboardVisibilityLis
setKeyboard(new CustomKeyboard(ScummVMActivity.this, TextInputKeyboardList[idx][keyboard]));
setPreviewEnabled(false);
setProximityCorrectionEnabled(false);
- for (CustomKeyboard.CustomKey k: getKeyboard().getKeys()) {
- if (stickyKeys.contains(k.codes[0])) {
- k.on = true;
- invalidateAllKeys();
- }
- }
+
+ // setKeyboard() already invalidates all keys,
+ // here we check for our memory of sticky keys state (and any that changed to on and were added to stickyKeys Set)
+ recheckStickyKeys();
+ //ScummVMActivity.this._scummvm.displayMessageOnOSD ("NEW KEYBOARD LAYOUT: QWERTY"
+ // + (alt ? " ALT " : "") + (shift? " SHIFT" : ""));
}
}
@@ -185,93 +258,131 @@ public class ScummVMActivity extends Activity implements OnKeyboardVisibilityLis
builtinKeyboard.setOnKeyboardActionListener(new CustomKeyboardView.OnKeyboardActionListener() {
public void onPress(int key) {
- Log.d(ScummVM.LOG_TAG, "SHOW KEYBOARD - 001 - onPress key: " + key ); // CALLED
+ //Log.d(ScummVM.LOG_TAG, "SHOW KEYBOARD - 001 - onPress key: " + key ); // CALLED
if (key == KeyEvent.KEYCODE_BACK) {
return;
}
- if (key < 0) {
+ if (key <= 0) {
return;
}
for (CustomKeyboard.CustomKey k: builtinKeyboard.getKeyboard().getKeys()) {
- if (k.sticky && key == k.codes[0])
+ if (k.sticky && key == k.codes[0]) {
return;
+ }
}
+ int compiledMetaState = builtinKeyboard.getCompiledMetaState();
+
+ // keys with keyCode greater than 100000, should be submitted with a LEFT_SHIFT_ modifier (and decreased by 100000 to get their proper code)
if (key > 100000) {
key -= 100000;
- _main_surface.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SHIFT_LEFT));
+ compiledMetaState |= KeyEvent.META_SHIFT_LEFT_ON;
}
- _main_surface.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, key));
+
+ //
+ // downTime (long) - The time (in SystemClock.uptimeMillis()) at which this key code originally went down.
+ // ** Since this is a down event, this will be the same as getEventTime(). **
+ // Note that when chording keys, this value is the down time of the most recently pressed key, which may not be the same physical key of this event.
+ // eventTime (long) - The time (in SystemClock.uptimeMillis()) at which this event happened.
+ // TODO update repeat and event time? with
+ builtinKeyboard.mEventTime = SystemClock.uptimeMillis();
+ KeyEvent compiledKeyEvent = new KeyEvent(builtinKeyboard.mEventTime,
+ builtinKeyboard.mEventTime,
+ KeyEvent.ACTION_DOWN,
+ key,
+ 0,
+ compiledMetaState);
+
+ _main_surface.dispatchKeyEvent(compiledKeyEvent);
}
public void onRelease(int key) {
- Log.d(ScummVM.LOG_TAG, "SHOW KEYBOARD - 001 - onRelease key: " + key );
+ //Log.d(ScummVM.LOG_TAG, "SHOW KEYBOARD - 001 - onRelease key: " + key );
if (key == KeyEvent.KEYCODE_BACK) {
builtinKeyboard.setOnKeyboardActionListener(null);
showScreenKeyboardWithoutTextInputField(0); // Hide keyboard
return;
}
+ // CustomKeyboard.KEYCODE_SHIFT is a special button (negative value)
+ // which basically changes the keyboard to a another,"SHIFTED", layout (other keys)
+ // In this layout, if it's NOT also an "ALT" layout, keys are assumed to get the LEFT SHIFT modifier by default
if (key == CustomKeyboard.KEYCODE_SHIFT) {
- builtinKeyboard.shift = ! builtinKeyboard.shift;
- if (builtinKeyboard.shift && !builtinKeyboard.alt) {
- _main_surface.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SHIFT_LEFT));
- } else {
- _main_surface.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SHIFT_LEFT));
- }
+ builtinKeyboard.shift = !builtinKeyboard.shift;
builtinKeyboard.ChangeKeyboard();
return;
}
if (key == CustomKeyboard.KEYCODE_ALT) {
- builtinKeyboard.alt = ! builtinKeyboard.alt;
- if (builtinKeyboard.alt) {
- _main_surface.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SHIFT_LEFT));
- } else {
+ builtinKeyboard.alt = !builtinKeyboard.alt;
+ if (!builtinKeyboard.alt) {
builtinKeyboard.shift = false;
}
builtinKeyboard.ChangeKeyboard();
return;
}
- if (key < 0) {
+ if (key <= 0) {
return;
}
+ //
+ // TODO - Probably remove keys like caps lock, scroll lock, num lock, print etc...
+ //
for (CustomKeyboard.CustomKey k: builtinKeyboard.getKeyboard().getKeys()) {
if (k.sticky && key == k.codes[0]) {
- if (k.on) {
- builtinKeyboard.stickyKeys.add(key);
- _main_surface.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, key));
- } else {
+ if (builtinKeyboard.stickyKeys.contains(key)) {
+ // if it was "remembered" (in stickyKeys set) as ON
+ // (and it off by removing them from stickyKeys set)
builtinKeyboard.stickyKeys.remove(key);
- _main_surface.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, key));
+ } else {
+ // if it was "remembered" (in stickyKeys set) as OFF
+ // (turn it on by adding them to stickyKeys set)
+ builtinKeyboard.stickyKeys.add(key);
}
+ builtinKeyboard.recheckStickyKeys();
return;
}
}
- boolean shifted = false;
+ int compiledMetaState = builtinKeyboard.getCompiledMetaState();
+
+ //boolean shifted = false;
if (key > 100000) {
key -= 100000;
- shifted = true;
+ //shifted = true;
+ compiledMetaState |= KeyEvent.META_SHIFT_LEFT_ON;
}
- _main_surface.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, key));
-
- if (shifted) {
- _main_surface.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SHIFT_LEFT));
- builtinKeyboard.stickyKeys.remove(KeyEvent.KEYCODE_SHIFT_LEFT);
- for (CustomKeyboard.CustomKey k: builtinKeyboard.getKeyboard().getKeys())
- {
- if (k.sticky && k.codes[0] == KeyEvent.KEYCODE_SHIFT_LEFT && k.on)
- {
- k.on = false;
- builtinKeyboard.invalidateAllKeys();
+ // TODO properly set repeat value?
+ KeyEvent compiledKeyEvent = new KeyEvent(builtinKeyboard.mEventTime,
+ SystemClock.uptimeMillis(),
+ KeyEvent.ACTION_UP,
+ key,
+ 0,
+ compiledMetaState);
+
+ _main_surface.dispatchKeyEvent(compiledKeyEvent);
+ builtinKeyboard.mEventTime = -1; // reset event time
+
+ // Excluding the CAPS LOCK NUM LOCK AND SCROLL LOCK keys,
+ // clear the state of all other sticky keys that are used in a key combo
+ // when we reach this part of the code
+ if (builtinKeyboard.stickyKeys.size() > 0) {
+ HashSet<Integer> stickiesToReleaseSet = new HashSet<>();
+ for (int tmpKeyCode : builtinKeyboard.stickyKeys) {
+ if (tmpKeyCode != KeyEvent.KEYCODE_CAPS_LOCK
+ && tmpKeyCode != KeyEvent.KEYCODE_NUM_LOCK
+ && tmpKeyCode != KeyEvent.KEYCODE_SCROLL_LOCK) {
+ stickiesToReleaseSet.add(tmpKeyCode);
}
}
+ if (stickiesToReleaseSet.size() > 0) {
+ builtinKeyboard.stickyKeys.removeAll(stickiesToReleaseSet);
+ builtinKeyboard.recheckStickyKeys();
+ }
}
}
@@ -324,11 +435,11 @@ public class ScummVMActivity extends Activity implements OnKeyboardVisibilityLis
if (bGlobalsCompatibilityHacksTextInputEmulatesHwKeyboard) {
showScreenKeyboardWithoutTextInputField(dGlobalsTextInputKeyboard);
- Log.d(ScummVM.LOG_TAG, "showScreenKeyboard - showScreenKeyboardWithoutTextInputField()");
+ //Log.d(ScummVM.LOG_TAG, "showScreenKeyboard - showScreenKeyboardWithoutTextInputField()");
_main_surface.captureMouse(false);
return;
}
- Log.d(ScummVM.LOG_TAG, "showScreenKeyboard: YOU SHOULD NOT SEE ME!!!");
+ //Log.d(ScummVM.LOG_TAG, "showScreenKeyboard: YOU SHOULD NOT SEE ME!!!");
// // TODO redundant ?
// if (_screenKeyboard != null) {
diff --git a/backends/platform/android/org/scummvm/scummvm/ScummVMEventsBase.java b/backends/platform/android/org/scummvm/scummvm/ScummVMEventsBase.java
index fcade59735..c9905c45ff 100644
--- a/backends/platform/android/org/scummvm/scummvm/ScummVMEventsBase.java
+++ b/backends/platform/android/org/scummvm/scummvm/ScummVMEventsBase.java
@@ -289,6 +289,7 @@ public class ScummVMEventsBase implements
break;
}
+ // look in events.cpp for how this is handled
_scummvm.pushEvent(type, action, keyCode,
e.getUnicodeChar() & KeyCharacterMap.COMBINING_ACCENT_MASK,
e.getMetaState(), e.getRepeatCount(),
diff --git a/dists/android/res/xml/qwerty.xml b/dists/android/res/xml/qwerty.xml
index d47c174746..6aa7f5130e 100644
--- a/dists/android/res/xml/qwerty.xml
+++ b/dists/android/res/xml/qwerty.xml
@@ -6,7 +6,7 @@
scummvm:verticalGap="0px"
scummvm:keyHeight="10%p">
<CustomRow>
- <CustomKey scummvm:codes="45" scummvm:keyLabel="q" scummvm:keyEdgeFlags="left" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="45" scummvm:keyLabel="q" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="left"/>
<CustomKey scummvm:codes="51" scummvm:keyLabel="w" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="33" scummvm:keyLabel="e" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="46" scummvm:keyLabel="r" scummvm:isRepeatable="true"/>
@@ -15,10 +15,10 @@
<CustomKey scummvm:codes="49" scummvm:keyLabel="u" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="37" scummvm:keyLabel="i" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="43" scummvm:keyLabel="o" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="44" scummvm:keyLabel="p" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="44" scummvm:keyLabel="p" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow>
- <CustomKey scummvm:codes="29" scummvm:keyLabel="a" scummvm:keyEdgeFlags="left" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="29" scummvm:keyLabel="a" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="left"/>
<CustomKey scummvm:codes="47" scummvm:keyLabel="s" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="32" scummvm:keyLabel="d" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="34" scummvm:keyLabel="f" scummvm:isRepeatable="true"/>
@@ -27,7 +27,7 @@
<CustomKey scummvm:codes="38" scummvm:keyLabel="j" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="39" scummvm:keyLabel="k" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="40" scummvm:keyLabel="l" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="74" scummvm:keyLabel=";" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="74" scummvm:keyLabel=";" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow>
<CustomKey scummvm:codes="-1" scummvm:keyLabel="âª" scummvm:keyEdgeFlags="left"/>
@@ -38,16 +38,16 @@
<CustomKey scummvm:codes="30" scummvm:keyLabel="b" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="42" scummvm:keyLabel="n" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="41" scummvm:keyLabel="m" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="67" scummvm:keyLabel="â¬
" scummvm:keyWidth="20%p" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="67" scummvm:keyLabel="â¬
" scummvm:isRepeatable="true" scummvm:keyWidth="20%p" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow rowEdgeFlags="bottom">
- <CustomKey scummvm:codes="-6" scummvm:keyLabel="123â¦" scummvm:keyEdgeFlags="left"/>
- <CustomKey scummvm:codes="71" scummvm:keyLabel="[" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="72" scummvm:keyLabel="]" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="76" scummvm:keyLabel="/" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="62" scummvm:keyLabel="Space" scummvm:keyWidth="20%p" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="55" scummvm:keyLabel="," scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="56" scummvm:keyLabel="." scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="66" scummvm:keyLabel="Enter" scummvm:keyWidth="20%p" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="-6" scummvm:keyLabel="123â¦" scummvm:keyEdgeFlags="left"/>
+ <CustomKey scummvm:codes="71" scummvm:keyLabel="[" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="72" scummvm:keyLabel="]" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="76" scummvm:keyLabel="/" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="62" scummvm:keyLabel="Space" scummvm:isRepeatable="true" scummvm:keyWidth="20%p"/>
+ <CustomKey scummvm:codes="55" scummvm:keyLabel="," scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="56" scummvm:keyLabel="." scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="66" scummvm:keyLabel="Enter" scummvm:isRepeatable="true" scummvm:keyWidth="20%p" scummvm:keyEdgeFlags="right"/>
</CustomRow>
</CustomKeyboard>
diff --git a/dists/android/res/xml/qwerty_alt.xml b/dists/android/res/xml/qwerty_alt.xml
index b7dacc70f1..bb32bf8702 100644
--- a/dists/android/res/xml/qwerty_alt.xml
+++ b/dists/android/res/xml/qwerty_alt.xml
@@ -6,7 +6,7 @@
scummvm:verticalGap="0px"
scummvm:keyHeight="10%p">
<CustomRow>
- <CustomKey scummvm:codes="8" scummvm:keyLabel="1" scummvm:keyEdgeFlags="left" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="8" scummvm:keyLabel="1" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="left"/>
<CustomKey scummvm:codes="9" scummvm:keyLabel="2" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="10" scummvm:keyLabel="3" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="11" scummvm:keyLabel="4" scummvm:isRepeatable="true"/>
@@ -15,41 +15,44 @@
<CustomKey scummvm:codes="14" scummvm:keyLabel="7" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="15" scummvm:keyLabel="8" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="16" scummvm:keyLabel="9" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="7" scummvm:keyLabel="0" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="7" scummvm:keyLabel="0" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow>
- <CustomKey scummvm:codes="111" scummvm:keyLabel="Esc" scummvm:keyEdgeFlags="left" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="68" scummvm:keyLabel="`" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="69" scummvm:keyLabel="-" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="70" scummvm:keyLabel="=" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="73" scummvm:keyLabel="\\" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="124" scummvm:keyLabel="Ins" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="111" scummvm:keyLabel="Esc" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="left"/>
+ <CustomKey scummvm:codes="68" scummvm:keyLabel="`" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="69" scummvm:keyLabel="-" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="70" scummvm:keyLabel="=" scummvm:isRepeatable="true"/>
+ <!-- The "\" character is used as a special key to fix a bug with backspace usage,
+ so it's ignored in the input and thus we don't show it on the virtual keyboard either -->
+<!-- <CustomKey scummvm:codes="73" scummvm:keyLabel="\\" scummvm:isRepeatable="true"/> -->
+ <CustomKey scummvm:codes="76" scummvm:keyLabel="/" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="124" scummvm:keyLabel="Ins" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="92" scummvm:keyLabel="PgUp" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="122" scummvm:keyLabel="Home" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="19" scummvm:keyLabel="â" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="123" scummvm:keyLabel="End" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right" />
+ <CustomKey scummvm:codes="19" scummvm:keyLabel="â" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="123" scummvm:keyLabel="End" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right" />
</CustomRow>
<CustomRow>
- <CustomKey scummvm:codes="-1" scummvm:keyLabel="!@#â¦" scummvm:keyEdgeFlags="left"/>
- <CustomKey scummvm:codes="75" scummvm:keyLabel="'" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100075" scummvm:keyLabel=""" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="61" scummvm:keyLabel="Tab" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="115" scummvm:keyLabel="CapsLk" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="112" scummvm:keyLabel="Del" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="93" scummvm:keyLabel="PgDn" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="21" scummvm:keyLabel="â" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="20" scummvm:keyLabel="â" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="22" scummvm:keyLabel="â" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="-1" scummvm:keyLabel="!@#â¦" scummvm:keyEdgeFlags="left"/>
+ <CustomKey scummvm:codes="75" scummvm:keyLabel="'" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100075" scummvm:keyLabel=""" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="61" scummvm:keyLabel="Tab" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="115" scummvm:keyLabel="CapsLk" scummvm:isSticky="true" />
+ <CustomKey scummvm:codes="112" scummvm:keyLabel="Del" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="93" scummvm:keyLabel="PgDn" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="21" scummvm:keyLabel="â" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="20" scummvm:keyLabel="â" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="22" scummvm:keyLabel="â" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow rowEdgeFlags="bottom">
<CustomKey scummvm:codes="-6" scummvm:keyLabel="abcâ¦" scummvm:keyEdgeFlags="left"/>
<CustomKey scummvm:codes="59" scummvm:keyLabel="Shift" scummvm:isSticky="true"/>
<CustomKey scummvm:codes="113" scummvm:keyLabel="Ctrl" scummvm:isSticky="true"/>
- <CustomKey scummvm:codes="117" scummvm:keyLabel="Meta" scummvm:isSticky="true"/>
+ <CustomKey scummvm:codes="117" scummvm:keyLabel="Meta" scummvm:isSticky="true"/>
<CustomKey scummvm:codes="57" scummvm:keyLabel="Alt" scummvm:isSticky="true"/>
<CustomKey scummvm:codes="58" scummvm:keyLabel="Alt" scummvm:isSticky="true"/>
- <CustomKey scummvm:codes="118" scummvm:keyLabel="Meta" scummvm:isSticky="true"/>
- <CustomKey scummvm:codes="226" scummvm:keyLabel="Menu" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="118" scummvm:keyLabel="Meta" scummvm:isSticky="true"/>
+ <CustomKey scummvm:codes="226" scummvm:keyLabel="Menu" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="114" scummvm:keyLabel="Ctrl" scummvm:isSticky="true"/>
<CustomKey scummvm:codes="60" scummvm:keyLabel="Shift" scummvm:isSticky="true"/>
</CustomRow>
diff --git a/dists/android/res/xml/qwerty_alt_shift.xml b/dists/android/res/xml/qwerty_alt_shift.xml
index eec092eeac..92d4149fa0 100644
--- a/dists/android/res/xml/qwerty_alt_shift.xml
+++ b/dists/android/res/xml/qwerty_alt_shift.xml
@@ -6,40 +6,40 @@
scummvm:verticalGap="0px"
scummvm:keyHeight="10%p">
<CustomRow>
- <CustomKey scummvm:codes="100008" scummvm:keyLabel="!" scummvm:keyEdgeFlags="left" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100009" scummvm:keyLabel="\@" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100010" scummvm:keyLabel="#" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100011" scummvm:keyLabel="$" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100012" scummvm:keyLabel="%" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100013" scummvm:keyLabel="^" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100008" scummvm:keyLabel="!" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="left"/>
+ <CustomKey scummvm:codes="100009" scummvm:keyLabel="\@" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100010" scummvm:keyLabel="#" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100011" scummvm:keyLabel="$" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100012" scummvm:keyLabel="%" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100013" scummvm:keyLabel="^" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="100014" scummvm:keyLabel="&" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100015" scummvm:keyLabel="*" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100016" scummvm:keyLabel="(" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100007" scummvm:keyLabel=")" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100015" scummvm:keyLabel="*" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100016" scummvm:keyLabel="(" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100007" scummvm:keyLabel=")" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow>
- <CustomKey scummvm:codes="111" scummvm:keyLabel="Esc" scummvm:keyEdgeFlags="left" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100068" scummvm:keyLabel="~" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100069" scummvm:keyLabel="_" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100070" scummvm:keyLabel="+" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="100073" scummvm:keyLabel="|" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="111" scummvm:keyLabel="Esc" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="left"/>
+ <CustomKey scummvm:codes="100068" scummvm:keyLabel="~" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100069" scummvm:keyLabel="_" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100070" scummvm:keyLabel="+" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="100073" scummvm:keyLabel="|" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="100075" scummvm:keyLabel=""" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="131" scummvm:keyLabel="F1" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="132" scummvm:keyLabel="F2" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="133" scummvm:keyLabel="F3" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="134" scummvm:keyLabel="F4" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right" />
+ <CustomKey scummvm:codes="131" scummvm:keyLabel="F1" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="132" scummvm:keyLabel="F2" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="133" scummvm:keyLabel="F3" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="134" scummvm:keyLabel="F4" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow>
- <CustomKey scummvm:codes="-1" scummvm:keyLabel="123â¦" scummvm:keyEdgeFlags="left"/>
- <CustomKey scummvm:codes="143" scummvm:keyLabel="NumLk" scummvm:isSticky="true"/>
- <CustomKey scummvm:codes="120" scummvm:keyLabel="Print" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="116" scummvm:keyLabel="ScrollLk" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="121" scummvm:keyLabel="Pause" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="158" scummvm:keyLabel="Kp ." scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="135" scummvm:keyLabel="F5" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="136" scummvm:keyLabel="F6" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="137" scummvm:keyLabel="F7" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="138" scummvm:keyLabel="F8" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="-1" scummvm:keyLabel="123â¦" scummvm:keyEdgeFlags="left"/>
+ <CustomKey scummvm:codes="143" scummvm:keyLabel="NumLk" scummvm:isSticky="true"/>
+ <CustomKey scummvm:codes="120" scummvm:keyLabel="Print" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="116" scummvm:keyLabel="ScrollLk" scummvm:isSticky="true"/>
+ <CustomKey scummvm:codes="121" scummvm:keyLabel="Pause" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="158" scummvm:keyLabel="Kp ." scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="135" scummvm:keyLabel="F5" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="136" scummvm:keyLabel="F6" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="137" scummvm:keyLabel="F7" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="138" scummvm:keyLabel="F8" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow rowEdgeFlags="bottom">
<CustomKey scummvm:codes="-6" scummvm:keyLabel="abcâ¦" scummvm:keyEdgeFlags="left"/>
@@ -48,9 +48,9 @@
<CustomKey scummvm:codes="156" scummvm:keyLabel="Kp -" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="157" scummvm:keyLabel="Kp +" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="160" scummvm:keyLabel="Kp âµ" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="139" scummvm:keyLabel="F9" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="140" scummvm:keyLabel="F10" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="141" scummvm:keyLabel="F11" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="142" scummvm:keyLabel="F12" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="139" scummvm:keyLabel="F9" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="140" scummvm:keyLabel="F10" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="141" scummvm:keyLabel="F11" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="142" scummvm:keyLabel="F12" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right" />
</CustomRow>
</CustomKeyboard>
diff --git a/dists/android/res/xml/qwerty_shift.xml b/dists/android/res/xml/qwerty_shift.xml
index 5a740437b8..77c4ea0329 100644
--- a/dists/android/res/xml/qwerty_shift.xml
+++ b/dists/android/res/xml/qwerty_shift.xml
@@ -6,7 +6,7 @@
scummvm:verticalGap="0px"
scummvm:keyHeight="10%p">
<CustomRow>
- <CustomKey scummvm:codes="45" scummvm:keyLabel="Q" scummvm:keyEdgeFlags="left" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="45" scummvm:keyLabel="Q" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="left"/>
<CustomKey scummvm:codes="51" scummvm:keyLabel="W" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="33" scummvm:keyLabel="E" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="46" scummvm:keyLabel="R" scummvm:isRepeatable="true"/>
@@ -15,10 +15,10 @@
<CustomKey scummvm:codes="49" scummvm:keyLabel="U" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="37" scummvm:keyLabel="I" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="43" scummvm:keyLabel="O" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="44" scummvm:keyLabel="P" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="44" scummvm:keyLabel="P" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow>
- <CustomKey scummvm:codes="29" scummvm:keyLabel="A" scummvm:keyEdgeFlags="left" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="29" scummvm:keyLabel="A" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="left"/>
<CustomKey scummvm:codes="47" scummvm:keyLabel="S" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="32" scummvm:keyLabel="D" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="34" scummvm:keyLabel="F" scummvm:isRepeatable="true"/>
@@ -27,7 +27,7 @@
<CustomKey scummvm:codes="38" scummvm:keyLabel="J" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="39" scummvm:keyLabel="K" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="40" scummvm:keyLabel="L" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="74" scummvm:keyLabel=":" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="74" scummvm:keyLabel=":" scummvm:isRepeatable="true" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow>
<CustomKey scummvm:codes="-1" scummvm:keyLabel="â«" scummvm:keyEdgeFlags="left"/>
@@ -38,16 +38,16 @@
<CustomKey scummvm:codes="30" scummvm:keyLabel="B" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="42" scummvm:keyLabel="N" scummvm:isRepeatable="true"/>
<CustomKey scummvm:codes="41" scummvm:keyLabel="M" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="67" scummvm:keyLabel="â¬
" scummvm:keyWidth="20%p" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="67" scummvm:keyLabel="â¬
" scummvm:isRepeatable="true" scummvm:keyWidth="20%p" scummvm:keyEdgeFlags="right"/>
</CustomRow>
<CustomRow rowEdgeFlags="bottom">
- <CustomKey scummvm:codes="-6" scummvm:keyLabel="!@#â¦" scummvm:keyEdgeFlags="left"/>
- <CustomKey scummvm:codes="71" scummvm:keyLabel="{" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="72" scummvm:keyLabel="}" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="76" scummvm:keyLabel="\?" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="62" scummvm:keyLabel="Space" scummvm:keyWidth="20%p" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="55" scummvm:keyLabel="<" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="56" scummvm:keyLabel=">" scummvm:isRepeatable="true"/>
- <CustomKey scummvm:codes="66" scummvm:keyLabel="Enter" scummvm:keyWidth="20%p" scummvm:keyEdgeFlags="right" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="-6" scummvm:keyLabel="!@#â¦" scummvm:keyEdgeFlags="left"/>
+ <CustomKey scummvm:codes="71" scummvm:keyLabel="{" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="72" scummvm:keyLabel="}" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="76" scummvm:keyLabel="\?" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="62" scummvm:keyLabel="Space" scummvm:isRepeatable="true" scummvm:keyWidth="20%p"/>
+ <CustomKey scummvm:codes="55" scummvm:keyLabel="<" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="56" scummvm:keyLabel=">" scummvm:isRepeatable="true"/>
+ <CustomKey scummvm:codes="66" scummvm:keyLabel="Enter" scummvm:isRepeatable="true" scummvm:keyWidth="20%p" scummvm:keyEdgeFlags="right"/>
</CustomRow>
</CustomKeyboard>
More information about the Scummvm-git-logs
mailing list