Ignore events that occur between app icons on the taskbar

Bug: 297325541
Flag: com.android.launcher3.show_taskbar_pinning_popup_from_anywhere
Test: manual, flip the flag, long-click between taskbar items
Change-Id: If2ee00f31fcd1788bac2c2c0cd78ba1eada86115
This commit is contained in:
Artsiom Mitrokhin
2024-10-18 14:33:13 -04:00
parent 8ed2ef9029
commit 7205b24938
7 changed files with 58 additions and 23 deletions
@@ -202,6 +202,10 @@ public class TaskbarViewCallbacks {
private class TaskbarViewGestureListener extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onDown(@NonNull MotionEvent event) {
if (event.isFromSource(InputDevice.SOURCE_MOUSE)
&& event.getButtonState() == MotionEvent.BUTTON_SECONDARY) {
maybeShowPinningView(event);
}
return true;
}
@@ -211,11 +215,16 @@ public class TaskbarViewCallbacks {
}
@Override
public void onLongPress(MotionEvent event) {
if (DisplayController.isPinnedTaskbar(mActivity)) {
mControllers.taskbarPinningController.showPinningView(mTaskbarView,
event.getRawX());
public void onLongPress(@NonNull MotionEvent event) {
maybeShowPinningView(event);
}
private void maybeShowPinningView(@NonNull MotionEvent event) {
if (!DisplayController.isPinnedTaskbar(mActivity) || mTaskbarView.isEventOverAnyItem(
event)) {
return;
}
mControllers.taskbarPinningController.showPinningView(mTaskbarView, event.getRawX());
}
}
}