Loading services/core/java/com/android/server/wm/DisplayContent.java +3 −0 Original line number Diff line number Diff line Loading @@ -2547,6 +2547,9 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo } for (int i = mTapExcludedWindows.size() - 1; i >= 0; i--) { final WindowState win = mTapExcludedWindows.get(i); if (!win.isVisibleLw()) { continue; } win.getTouchableRegion(mTmpRegion); mTouchExcludeRegion.op(mTmpRegion, Region.Op.UNION); } Loading services/core/java/com/android/server/wm/TaskTapPointerEventListener.java +15 −7 Original line number Diff line number Diff line Loading @@ -48,6 +48,16 @@ public class TaskTapPointerEventListener implements PointerEventListener { mDisplayContent = displayContent; } private void restorePointerIcon(int x, int y) { if (mPointerIconType != TYPE_NOT_SPECIFIED) { mPointerIconType = TYPE_NOT_SPECIFIED; // Find the underlying window and ask it to restore the pointer icon. mService.mH.removeMessages(H.RESTORE_POINTER_ICON); mService.mH.obtainMessage(H.RESTORE_POINTER_ICON, x, y, mDisplayContent).sendToTarget(); } } @Override public void onPointerEvent(MotionEvent motionEvent) { switch (motionEvent.getActionMasked()) { Loading @@ -67,6 +77,10 @@ public class TaskTapPointerEventListener implements PointerEventListener { case MotionEvent.ACTION_HOVER_MOVE: { final int x = (int) motionEvent.getX(); final int y = (int) motionEvent.getY(); if (mTouchExcludeRegion.contains(x, y)) { restorePointerIcon(x, y); break; } final Task task = mDisplayContent.findTaskForResizePoint(x, y); int iconType = TYPE_NOT_SPECIFIED; if (task != null) { Loading Loading @@ -103,13 +117,7 @@ public class TaskTapPointerEventListener implements PointerEventListener { case MotionEvent.ACTION_HOVER_EXIT: { final int x = (int) motionEvent.getX(); final int y = (int) motionEvent.getY(); if (mPointerIconType != TYPE_NOT_SPECIFIED) { mPointerIconType = TYPE_NOT_SPECIFIED; // Find the underlying window and ask it to restore the pointer icon. mService.mH.removeMessages(H.RESTORE_POINTER_ICON); mService.mH.obtainMessage(H.RESTORE_POINTER_ICON, x, y, mDisplayContent).sendToTarget(); } restorePointerIcon(x, y); } break; } Loading services/core/java/com/android/server/wm/WindowManagerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_QS_DIALOG; import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR; import static android.view.WindowManager.LayoutParams.TYPE_TOAST; import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION; import static android.view.WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY; import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER; import static android.view.WindowManager.REMOVE_CONTENT_MODE_UNDEFINED; import static android.view.WindowManagerGlobal.ADD_OKAY; Loading Loading @@ -1373,6 +1374,7 @@ public class WindowManagerService extends IWindowManager.Stub case TYPE_NOTIFICATION_SHADE: case TYPE_NAVIGATION_BAR: case TYPE_INPUT_METHOD_DIALOG: case TYPE_VOLUME_OVERLAY: return true; } return false; Loading Loading
services/core/java/com/android/server/wm/DisplayContent.java +3 −0 Original line number Diff line number Diff line Loading @@ -2547,6 +2547,9 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo } for (int i = mTapExcludedWindows.size() - 1; i >= 0; i--) { final WindowState win = mTapExcludedWindows.get(i); if (!win.isVisibleLw()) { continue; } win.getTouchableRegion(mTmpRegion); mTouchExcludeRegion.op(mTmpRegion, Region.Op.UNION); } Loading
services/core/java/com/android/server/wm/TaskTapPointerEventListener.java +15 −7 Original line number Diff line number Diff line Loading @@ -48,6 +48,16 @@ public class TaskTapPointerEventListener implements PointerEventListener { mDisplayContent = displayContent; } private void restorePointerIcon(int x, int y) { if (mPointerIconType != TYPE_NOT_SPECIFIED) { mPointerIconType = TYPE_NOT_SPECIFIED; // Find the underlying window and ask it to restore the pointer icon. mService.mH.removeMessages(H.RESTORE_POINTER_ICON); mService.mH.obtainMessage(H.RESTORE_POINTER_ICON, x, y, mDisplayContent).sendToTarget(); } } @Override public void onPointerEvent(MotionEvent motionEvent) { switch (motionEvent.getActionMasked()) { Loading @@ -67,6 +77,10 @@ public class TaskTapPointerEventListener implements PointerEventListener { case MotionEvent.ACTION_HOVER_MOVE: { final int x = (int) motionEvent.getX(); final int y = (int) motionEvent.getY(); if (mTouchExcludeRegion.contains(x, y)) { restorePointerIcon(x, y); break; } final Task task = mDisplayContent.findTaskForResizePoint(x, y); int iconType = TYPE_NOT_SPECIFIED; if (task != null) { Loading Loading @@ -103,13 +117,7 @@ public class TaskTapPointerEventListener implements PointerEventListener { case MotionEvent.ACTION_HOVER_EXIT: { final int x = (int) motionEvent.getX(); final int y = (int) motionEvent.getY(); if (mPointerIconType != TYPE_NOT_SPECIFIED) { mPointerIconType = TYPE_NOT_SPECIFIED; // Find the underlying window and ask it to restore the pointer icon. mService.mH.removeMessages(H.RESTORE_POINTER_ICON); mService.mH.obtainMessage(H.RESTORE_POINTER_ICON, x, y, mDisplayContent).sendToTarget(); } restorePointerIcon(x, y); } break; } Loading
services/core/java/com/android/server/wm/WindowManagerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_QS_DIALOG; import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR; import static android.view.WindowManager.LayoutParams.TYPE_TOAST; import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION; import static android.view.WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY; import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER; import static android.view.WindowManager.REMOVE_CONTENT_MODE_UNDEFINED; import static android.view.WindowManagerGlobal.ADD_OKAY; Loading Loading @@ -1373,6 +1374,7 @@ public class WindowManagerService extends IWindowManager.Stub case TYPE_NOTIFICATION_SHADE: case TYPE_NAVIGATION_BAR: case TYPE_INPUT_METHOD_DIALOG: case TYPE_VOLUME_OVERLAY: return true; } return false; Loading