From 28338f42f8b3ce5e325133bc43784ad6f9536149 Mon Sep 17 00:00:00 2001 From: artdeell Date: Tue, 23 Feb 2021 17:34:30 +0300 Subject: [PATCH] Mouse pass-thru (can be enabled per-button) --- .../net/kdt/pojavlaunch/customcontrols/ControlButton.java | 7 +++++++ .../net/kdt/pojavlaunch/customcontrols/ControlData.java | 2 +- .../customcontrols/handleview/ActionPopupWindow.java | 4 +++- app_pojavlauncher/src/main/res/layout/control_setting.xml | 7 +++++++ app_pojavlauncher/src/main/res/values/strings.xml | 1 + 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java index a85a811ae..3d77bfbf9 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java @@ -197,6 +197,13 @@ public class ControlButton extends androidx.appcompat.widget.AppCompatButton imp public boolean onTouchEvent(MotionEvent event) { if (!mModifiable) { mCanTriggerLongClick = false; + if(event.getAction() == MotionEvent.ACTION_MOVE && CallbackBridge.isGrabbing() && mProperties.passThruEnabled) { + MinecraftGLView v = ((ControlLayout) this.getParent()).findViewById(R.id.main_game_render_view); + if(v != null) { + v.dispatchTouchEvent(event); + return true; + } + } if (mProperties.keycode >= 0) { if (!mProperties.isToggle) { switch (event.getActionMasked()) { diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlData.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlData.java index 0daa19452..1d2d79427 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlData.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlData.java @@ -38,7 +38,7 @@ public class ControlData implements Cloneable * bigger device or vice versa. */ public String dynamicX, dynamicY; - public boolean isDynamicBtn, isToggle; + public boolean isDynamicBtn, isToggle, passThruEnabled; public static ControlData[] getSpecialButtons(){ if (SPECIAL_BUTTONS == null) { diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java index 5c38ed97b..9364fe983 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/ActionPopupWindow.java @@ -115,7 +115,8 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe final CheckBox checkToggle = dialog.findViewById(R.id.controlsetting_checkbox_toggle); checkToggle.setChecked(properties.isToggle); - + final CheckBox checkPassthru = dialog.findViewById(R.id.controlsetting_checkbox_passthru); + checkPassthru.setChecked(properties.passThruEnabled); final EditText editWidth = dialog.findViewById(R.id.controlsetting_edit_width); final EditText editHeight = dialog.findViewById(R.id.controlsetting_edit_height); editWidth.setText(Float.toString(properties.width)); @@ -205,6 +206,7 @@ public class ActionPopupWindow extends PinnedPopupWindow implements OnClickListe properties.hidden = false; properties.isToggle = checkToggle.isChecked(); + properties.passThruEnabled = checkPassthru.isChecked(); properties.isDynamicBtn = checkDynamicPos.isChecked(); properties.width = Float.parseFloat(editWidth.getText().toString()); properties.height = Float.parseFloat(editHeight.getText().toString()); diff --git a/app_pojavlauncher/src/main/res/layout/control_setting.xml b/app_pojavlauncher/src/main/res/layout/control_setting.xml index 6659a7374..3e70d871f 100644 --- a/app_pojavlauncher/src/main/res/layout/control_setting.xml +++ b/app_pojavlauncher/src/main/res/layout/control_setting.xml @@ -1,6 +1,7 @@ @@ -46,6 +47,12 @@ android:text="@string/customctrl_toggle" android:id="@+id/controlsetting_checkbox_toggle"/> + + Disables gestures, such as hold to break block, and tap to place a block. Mouse Speed Changes the speed of the software mouse + Mouse pass-thru