diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java index ff9a12487..ec8134034 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/AndroidLWJGLKeycode.java @@ -5,6 +5,8 @@ import android.view.*; import java.net.CookieHandler; import java.util.*; + +import net.kdt.pojavlaunch.prefs.LauncherPreferences; import org.lwjgl.glfw.*; public class AndroidLWJGLKeycode { @@ -173,12 +175,16 @@ public class AndroidLWJGLKeycode { try { //System.out.println(((int)keyEvent.getDisplayLabel()) + " " +keyEvent.getDisplayLabel()); - if(keyEvent.getUnicodeChar() != 0) { - char key = (char)keyEvent.getUnicodeChar(); + if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_BACK && LauncherPreferences.PREF_BACK_TO_RIGHT_MOUSE) { + BaseMainActivity.sendMouseButton(LWJGLGLFWKeycode.GLFW_MOUSE_BUTTON_RIGHT, keyEvent.getAction() == KeyEvent.ACTION_DOWN); + } else { + if(keyEvent.getUnicodeChar() != 0) { + char key = (char)keyEvent.getUnicodeChar(); BaseMainActivity.sendKeyPress(androidToLwjglMap.get(keyEvent.getKeyCode()),key,0,CallbackBridge.getCurrentMods(),keyEvent.getAction() == KeyEvent.ACTION_DOWN); - }else{ + }else{ BaseMainActivity.sendKeyPress(androidToLwjglMap.get(keyEvent.getKeyCode()),CallbackBridge.getCurrentMods(),keyEvent.getAction()==KeyEvent.ACTION_DOWN); - } + } + } } catch (Throwable th) { th.printStackTrace(); } diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java index e1682d0c1..dff619aaa 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java @@ -13,6 +13,7 @@ public class LauncherPreferences public static boolean PREF_FREEFORM = false; public static boolean PREF_HIDE_SIDEBAR = false; public static boolean PREF_IGNORE_NOTCH = false; + public static boolean PREF_BACK_TO_RIGHT_MOUSE = false; public static int PREF_NOTCH_SIZE = 0; public static float PREF_BUTTONSIZE = 100f; public static float PREF_MOUSESCALE = 100f; @@ -28,6 +29,7 @@ public class LauncherPreferences PREF_FREEFORM = DEFAULT_PREF.getBoolean("freeform", false); PREF_HIDE_SIDEBAR = DEFAULT_PREF.getBoolean("hideSidebar", false); PREF_IGNORE_NOTCH = DEFAULT_PREF.getBoolean("ignoreNotch", false); + PREF_BACK_TO_RIGHT_MOUSE = DEFAULT_PREF.getBoolean("backToRightMouse", true); PREF_VERTYPE_RELEASE = DEFAULT_PREF.getBoolean("vertype_release", true); PREF_VERTYPE_SNAPSHOT = DEFAULT_PREF.getBoolean("vertype_snapshot", false); PREF_VERTYPE_OLDALPHA = DEFAULT_PREF.getBoolean("vertype_oldalpha", false); diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml index 7e89b4240..2a44fc521 100644 --- a/app_pojavlauncher/src/main/res/values/strings.xml +++ b/app_pojavlauncher/src/main/res/values/strings.xml @@ -85,6 +85,8 @@ Allows you to decrease the game resolution. 100% is full resolution How long will trigger after long press Change trigger time for long press in destroy block and drop item. + Treat back button as right mouse + Some devices treats external right mouse as back button. If you are using external mouse, you should enable this. Control buttons scaling Upscale them if buttons are too small. Mouse scaling diff --git a/app_pojavlauncher/src/main/res/xml/pref_main.xml b/app_pojavlauncher/src/main/res/xml/pref_main.xml index 2cd769c92..03b10d33d 100644 --- a/app_pojavlauncher/src/main/res/xml/pref_main.xml +++ b/app_pojavlauncher/src/main/res/xml/pref_main.xml @@ -49,6 +49,11 @@ android:key="autoRam" android:summary="@string/auto_ram_subtitle" android:title="@string/auto_ram_title" /> +