Fix jumping when jungling between pointers

This commit is contained in:
SerpentSpirale 2021-05-22 22:50:06 +02:00 committed by SerpentSpirale
parent a3fb8317b6
commit 7ed4607bc8

View File

@ -321,6 +321,7 @@ public class BaseMainActivity extends LoggableActivity {
private boolean isTouchInHotbar = false; private boolean isTouchInHotbar = false;
private int hotbarX, hotbarY; private int hotbarX, hotbarY;
private float prevX, prevY; private float prevX, prevY;
private int currentPointerID;
@Override @Override
public boolean onTouch(View p1, MotionEvent e) { public boolean onTouch(View p1, MotionEvent e) {
@ -375,6 +376,7 @@ public class BaseMainActivity extends LoggableActivity {
theHandler.sendEmptyMessageDelayed(BaseMainActivity.MSG_DROP_ITEM_BUTTON_CHECK, LauncherPreferences.PREF_LONGPRESS_TRIGGER); theHandler.sendEmptyMessageDelayed(BaseMainActivity.MSG_DROP_ITEM_BUTTON_CHECK, LauncherPreferences.PREF_LONGPRESS_TRIGGER);
} else { } else {
currentPointerID = e.getPointerId(0);
CallbackBridge.mouseX = mouse_x; CallbackBridge.mouseX = mouse_x;
CallbackBridge.mouseY = mouse_y; CallbackBridge.mouseY = mouse_y;
prevX = e.getX(); prevX = e.getX();
@ -452,18 +454,16 @@ public class BaseMainActivity extends LoggableActivity {
} }
} }
/*if(e.getHistorySize() > 0 && CallbackBridge.isGrabbing()) {
mouse_x += (int)(e.getX() - e.getHistoricalX(0))*4;
mouse_y += (int)(e.getY() - e.getHistoricalY(0))*4;
}*/
if(CallbackBridge.isGrabbing()){ if(CallbackBridge.isGrabbing()){
if(e.getActionMasked() == MotionEvent.ACTION_MOVE){ if(e.getPointerId(0) != currentPointerID){
currentPointerID = e.getPointerId(0);
}else{
mouse_x += (int) (e.getX() - prevX); mouse_x += (int) (e.getX() - prevX);
mouse_y += (int) (e.getY() - prevY); mouse_y += (int) (e.getY() - prevY);
}
prevX = e.getX(); prevX = e.getX();
prevY = e.getY(); prevY = e.getY();
} }
}