diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java
index df3d1d6b5..b7811de57 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java
@@ -161,6 +161,9 @@ public class BaseMainActivity extends LoggableActivity {
case R.id.nav_debug: toggleDebug();
break;
case R.id.nav_customkey: dialogSendCustomKey();
+ break;
+ case R.id.nav_mousespd: adjustMouseSpeedLive();
+ break;
}
//Toast.makeText(MainActivity.this, menuItem.getTitle() + ":" + menuItem.getItemId(), Toast.LENGTH_SHORT).show();
@@ -317,8 +320,8 @@ public class BaseMainActivity extends LoggableActivity {
}
break;
case MotionEvent.ACTION_MOVE: // 2
- mouseX = Math.max(0, Math.min(displayMetrics.widthPixels, mouseX + x - prevX));
- mouseY = Math.max(0, Math.min(displayMetrics.heightPixels, mouseY + y - prevY));
+ mouseX = Math.max(0, Math.min(displayMetrics.widthPixels, mouseX + (x - prevX)*LauncherPreferences.PREF_MOUSESPEED));
+ mouseY = Math.max(0, Math.min(displayMetrics.heightPixels, mouseY + (y - prevY)*LauncherPreferences.PREF_MOUSESPEED));
mouse_x = (int) (mouseX * scaleFactor);
mouse_y = (int) (mouseY * scaleFactor);
placeMouseAt(mouseX, mouseY);
@@ -1226,5 +1229,46 @@ public class BaseMainActivity extends LoggableActivity {
}
return hotbarKeys[((x - barX) / mcscale(180 / 9)) % 9];
}
+ int tmpMouseSpeed;
+ public void adjustMouseSpeedLive() {
+ AlertDialog.Builder b = new AlertDialog.Builder(this);
+ b.setTitle(R.string.mcl_setting_title_mousespeed);
+ View v = LayoutInflater.from(this).inflate(R.layout.live_mouse_speed_editor,null);
+ final SeekBar sb = v.findViewById(R.id.mouseSpeed);
+ final TextView tv = v.findViewById(R.id.mouseSpeedTV);
+ sb.setMax(275);
+ tmpMouseSpeed = (int) ((LauncherPreferences.PREF_MOUSESPEED*100));
+ sb.setProgress(tmpMouseSpeed-25);
+ tv.setText(tmpMouseSpeed +" %");
+ sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
+ tmpMouseSpeed = i+25;
+ tv.setText(tmpMouseSpeed +" %");
+ }
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {}
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {}
+ });
+ b.setView(v);
+ b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ LauncherPreferences.PREF_MOUSESPEED = ((float)tmpMouseSpeed)/100f;
+ LauncherPreferences.DEFAULT_PREF.edit().putInt("mousespeed",tmpMouseSpeed).commit();
+ dialogInterface.dismiss();
+ System.gc();
+ }
+ });
+ b.setNegativeButton(android.R.string.cancel,new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialogInterface, int i) {
+ dialogInterface.dismiss();
+ System.gc();
+ }
+ });
+ b.show();
+ }
}
diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java
index 01ef8fa9b..740422fb1 100644
--- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java
+++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferenceFragment.java
@@ -39,7 +39,12 @@ public class LauncherPreferenceFragment extends PreferenceFragmentCompat impleme
CustomSeekBarPreference seek5 = (CustomSeekBarPreference) findPreference("resolutionRatio");
seek5.setMin(25);
seek5.setSuffix(" %");
-
+
+ CustomSeekBarPreference seek6 = (CustomSeekBarPreference) findPreference("mousespeed");
+ seek6.setMin(25);
+ seek6.setValue((int)(LauncherPreferences.PREF_MOUSESPEED*100f));
+ seek6.setMax(300);
+ seek6.setSuffix(" %");
// #724 bug fix
if (seek5.getValue() < 25) {
seek5.setValue(100);
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 d281b3b14..75df2d73e 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
@@ -26,13 +26,15 @@ public class LauncherPreferences
public static String PREF_VERSION_REPOS = "https://launchermeta.mojang.com/mc/game/version_manifest_v2.json";
public static boolean PREF_CHECK_LIBRARY_SHA = true;
public static boolean PREF_DISABLE_GESTURES = false;
+ public static float PREF_MOUSESPEED = 1f;
public static void loadPreferences() {
PREF_BUTTONSIZE = DEFAULT_PREF.getInt("buttonscale", 100);
PREF_MOUSESCALE = DEFAULT_PREF.getInt("mousescale", 100);
+ PREF_MOUSESPEED = ((float)DEFAULT_PREF.getInt("mousespeed",100))/100f;
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_BACK_TO_RIGHT_MOUSE = DEFAULT_PREF.getBoolean("backToRightMouse", false);
PREF_BUTTON_FLAT = DEFAULT_PREF.getBoolean("flatButtonStyle", false);
PREF_VERTYPE_RELEASE = DEFAULT_PREF.getBoolean("vertype_release", true);
PREF_VERTYPE_SNAPSHOT = DEFAULT_PREF.getBoolean("vertype_snapshot", false);
diff --git a/app_pojavlauncher/src/main/res/drawable/mouse_pointer_spd.png b/app_pojavlauncher/src/main/res/drawable/mouse_pointer_spd.png
new file mode 100644
index 000000000..8ebd14f91
Binary files /dev/null and b/app_pojavlauncher/src/main/res/drawable/mouse_pointer_spd.png differ
diff --git a/app_pojavlauncher/src/main/res/layout/live_mouse_speed_editor.xml b/app_pojavlauncher/src/main/res/layout/live_mouse_speed_editor.xml
new file mode 100644
index 000000000..a4c806164
--- /dev/null
+++ b/app_pojavlauncher/src/main/res/layout/live_mouse_speed_editor.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app_pojavlauncher/src/main/res/menu/menu_runopt.xml b/app_pojavlauncher/src/main/res/menu/menu_runopt.xml
index f084b730a..f74005888 100644
--- a/app_pojavlauncher/src/main/res/menu/menu_runopt.xml
+++ b/app_pojavlauncher/src/main/res/menu/menu_runopt.xml
@@ -12,4 +12,7 @@
+
diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml
index 550577a18..55f79dabb 100644
--- a/app_pojavlauncher/src/main/res/values/strings.xml
+++ b/app_pojavlauncher/src/main/res/values/strings.xml
@@ -213,4 +213,6 @@
Library %s is fine and usable
Disable gestures
Disables gestures, such as hold to break block, and tap to place a block.
+ Mouse Speed
+ Changes the speed of the software mouse
diff --git a/app_pojavlauncher/src/main/res/xml/pref_main.xml b/app_pojavlauncher/src/main/res/xml/pref_main.xml
index be8139b20..def1ebc04 100644
--- a/app_pojavlauncher/src/main/res/xml/pref_main.xml
+++ b/app_pojavlauncher/src/main/res/xml/pref_main.xml
@@ -104,6 +104,13 @@
app2:icon="@drawable/mouse_pointer_1"
app2:selectable="false"
app2:showSeekBarValue="true" />
+