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

Commit 83e9525c authored by Adrian Roos's avatar Adrian Roos Committed by Android (Google) Code Review
Browse files

Merge "Fix premature clearing of clearable sysui flags" into mnc-dev

parents a681d7d9 01f2d1ac
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -10978,6 +10978,13 @@ public class WindowManagerService extends IWindowManager.Stub
        if (mLastDispatchedSystemUiVisibility == visibility) {
            return;
        }
        final int globalDiff = (visibility ^ mLastDispatchedSystemUiVisibility)
                // We are only interested in differences of one of the
                // clearable flags...
                & View.SYSTEM_UI_CLEARABLE_FLAGS
                // ...if it has actually been cleared.
                & ~visibility;

        mLastDispatchedSystemUiVisibility = visibility;
        mInputManager.setSystemUiVisibility(visibility);
        final WindowList windows = getDefaultWindowListLocked();
@@ -10986,12 +10993,7 @@ public class WindowManagerService extends IWindowManager.Stub
            WindowState ws = windows.get(i);
            try {
                int curValue = ws.mSystemUiVisibility;
                int diff = curValue ^ visibility;
                // We are only interested in differences of one of the
                // clearable flags...
                diff &= View.SYSTEM_UI_CLEARABLE_FLAGS;
                // ...if it has actually been cleared.
                diff &= ~visibility;
                int diff = (curValue ^ visibility) & globalDiff;
                int newValue = (curValue&~diff) | (visibility&diff);
                if (newValue != curValue) {
                    ws.mSeq++;