diff --git a/project/java/Globals.java b/project/java/Globals.java
index 81e72ddb9..cc582a221 100644
--- a/project/java/Globals.java
+++ b/project/java/Globals.java
@@ -109,10 +109,11 @@ class Globals
public static int RelativeMouseMovementSpeed = 2;
public static int RelativeMouseMovementAccel = 0;
public static int ShowScreenUnderFinger = Mouse.ZOOM_NONE;
- public static boolean KeepAspectRatio = KeepAspectRatioDefaultSetting;
public static int ClickScreenPressure = 0;
public static int ClickScreenTouchspotSize = 0;
+ public static boolean FingerHover = true;
public static boolean HoverJitterFilter = true;
+ public static boolean KeepAspectRatio = KeepAspectRatioDefaultSetting;
public static int RemapHwKeycode[] = new int[SDL_Keys.JAVA_KEYCODE_LAST];
public static int RemapScreenKbKeycode[] = new int[6];
public static int ScreenKbControlsLayout[][] = AppUsesThirdJoystick ? // Values for 800x480 resolution
diff --git a/project/java/Settings.java b/project/java/Settings.java
index d88f7f61b..fdaba6e86 100644
--- a/project/java/Settings.java
+++ b/project/java/Settings.java
@@ -175,6 +175,7 @@ class Settings
out.writeBoolean(Globals.HoverJitterFilter);
out.writeBoolean(Globals.MoveMouseWithGyroscope);
out.writeInt(Globals.MoveMouseWithGyroscopeSpeed);
+ out.writeBoolean(Globals.FingerHover);
out.close();
settingsLoaded = true;
@@ -361,6 +362,7 @@ class Settings
Globals.HoverJitterFilter = settingsFile.readBoolean();
Globals.MoveMouseWithGyroscope = settingsFile.readBoolean();
Globals.MoveMouseWithGyroscopeSpeed = settingsFile.readInt();
+ Globals.FingerHover = settingsFile.readBoolean();
settingsLoaded = true;
diff --git a/project/java/SettingsMenuMouse.java b/project/java/SettingsMenuMouse.java
index b24ecc850..14d017d8c 100644
--- a/project/java/SettingsMenuMouse.java
+++ b/project/java/SettingsMenuMouse.java
@@ -419,6 +419,7 @@ class SettingsMenuMouse extends SettingsMenu
p.getResources().getString(R.string.click_with_dpadcenter),
p.getResources().getString(R.string.mouse_relative),
p.getResources().getString(R.string.mouse_gyroscope_mouse),
+ p.getResources().getString(R.string.mouse_finger_hover),
};
boolean defaults[] = {
@@ -427,6 +428,7 @@ class SettingsMenuMouse extends SettingsMenu
Globals.ClickMouseWithDpad,
Globals.RelativeMouseMovement,
Globals.MoveMouseWithGyroscope,
+ Globals.FingerHover,
};
@@ -446,6 +448,8 @@ class SettingsMenuMouse extends SettingsMenu
Globals.RelativeMouseMovement = isChecked;
if( item == 4 )
Globals.MoveMouseWithGyroscope = isChecked;
+ if( item == 5 )
+ Globals.FingerHover = isChecked;
}
});
builder.setPositiveButton(p.getResources().getString(R.string.ok), new DialogInterface.OnClickListener()
diff --git a/project/java/Video.java b/project/java/Video.java
index da1743f5c..3000edac6 100644
--- a/project/java/Video.java
+++ b/project/java/Video.java
@@ -556,7 +556,7 @@ abstract class DifferentTouchInput
if( Globals.AppUsesMouse )
Toast.makeText(MainActivity.instance, "Finger hover capability detected", Toast.LENGTH_SHORT).show();
// Switch away from relative mouse input
- if( Globals.RelativeMouseMovement || Globals.LeftClickMethod != Mouse.LEFT_CLICK_NORMAL )
+ if( Globals.FingerHover && (Globals.RelativeMouseMovement || Globals.LeftClickMethod != Mouse.LEFT_CLICK_NORMAL) )
{
if( Globals.RelativeMouseMovement )
Globals.ShowScreenUnderFinger = Mouse.ZOOM_MAGNIFIER;
diff --git a/project/java/translations/values/strings.xml b/project/java/translations/values/strings.xml
index f75e96bfb..b043d40e2 100644
--- a/project/java/translations/values/strings.xml
+++ b/project/java/translations/values/strings.xml
@@ -111,6 +111,7 @@
Filter jitter for stylus/finger hover
Control mouse with gyroscope
Gyroscope sensitivity
+ Finger hover
None
diff --git a/project/jni/application/xserver-debian/xserver b/project/jni/application/xserver-debian/xserver
index 0d6c8e37a..17dc20fec 160000
--- a/project/jni/application/xserver-debian/xserver
+++ b/project/jni/application/xserver-debian/xserver
@@ -1 +1 @@
-Subproject commit 0d6c8e37a0027ecbe865bc477e3fff237ed58aa2
+Subproject commit 17dc20fec47249bda1e787d87e8f541e44b1ecb7
diff --git a/project/jni/application/xserver-gimp/xserver b/project/jni/application/xserver-gimp/xserver
index 0d6c8e37a..17dc20fec 160000
--- a/project/jni/application/xserver-gimp/xserver
+++ b/project/jni/application/xserver-gimp/xserver
@@ -1 +1 @@
-Subproject commit 0d6c8e37a0027ecbe865bc477e3fff237ed58aa2
+Subproject commit 17dc20fec47249bda1e787d87e8f541e44b1ecb7
diff --git a/project/jni/application/xserver/xserver b/project/jni/application/xserver/xserver
index 0d6c8e37a..17dc20fec 160000
--- a/project/jni/application/xserver/xserver
+++ b/project/jni/application/xserver/xserver
@@ -1 +1 @@
-Subproject commit 0d6c8e37a0027ecbe865bc477e3fff237ed58aa2
+Subproject commit 17dc20fec47249bda1e787d87e8f541e44b1ecb7