Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26af8c19 authored by Filip Gruszczynski's avatar Filip Gruszczynski Committed by Android Git Automerger
Browse files

am 26b18771: Merge "Private Window flag to disable touch events in...

am 26b18771: Merge "Private Window flag to disable touch events in WallpaperService." into lmp-sprout-dev

* commit '26b18771':
  Private Window flag to disable touch events in WallpaperService.
parents 53966f62 26b18771
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1101,6 +1101,13 @@ public interface WindowManager extends ViewManager {
         */
        public static final int PRIVATE_FLAG_KEYGUARD = 0x00000400;

        /**
         * Flag that prevents the wallpaper behind the current window from receiving touch events.
         *
         * {@hide}
         */
        public static final int PRIVATE_FLAG_DISABLE_WALLPAPER_TOUCH_EVENTS = 0x00000800;

        /**
         * Control flags that are private to the platform.
         * @hide
+8 −1
Original line number Diff line number Diff line
@@ -242,6 +242,7 @@ final class InputMonitor implements InputManagerService.WindowManagerCallbacks {
        final WindowStateAnimator universeBackground = mService.mAnimator.mUniverseBackground;
        final int aboveUniverseLayer = mService.mAnimator.mAboveUniverseLayer;
        boolean addedUniverse = false;
        boolean disableWallpaperTouchEvents = false;

        // If there's a drag in flight, provide a pseudowindow to catch drag input
        final boolean inDrag = (mService.mDragState != null);
@@ -282,8 +283,14 @@ final class InputMonitor implements InputManagerService.WindowManagerCallbacks {

                final boolean hasFocus = (child == mInputFocus);
                final boolean isVisible = child.isVisibleLw();
                if ((privateFlags
                        & WindowManager.LayoutParams.PRIVATE_FLAG_DISABLE_WALLPAPER_TOUCH_EVENTS)
                            != 0) {
                    disableWallpaperTouchEvents = true;
                }
                final boolean hasWallpaper = (child == mService.mWallpaperTarget)
                        && (privateFlags & WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD) == 0;
                        && (privateFlags & WindowManager.LayoutParams.PRIVATE_FLAG_KEYGUARD) == 0
                        && !disableWallpaperTouchEvents;
                final boolean onDefaultDisplay = (child.getDisplayId() == Display.DEFAULT_DISPLAY);

                // If there's a drag in progress and 'child' is a potential drop target,