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

Commit de5a7afc authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Don't include IME in app screenshot while in multi-window mode" into nyc-dev

parents 8a111f5f a5434dd9
Loading
Loading
Loading
Loading
+13 −6
Original line number Original line Diff line number Diff line
@@ -6150,12 +6150,19 @@ public class WindowManagerService extends IWindowManager.Stub


        WindowState appWin = null;
        WindowState appWin = null;


        boolean appIsImTarget;
        boolean includeImeInScreenshot;
        synchronized(mWindowMap) {
        synchronized(mWindowMap) {
            appIsImTarget = mInputMethodTarget != null
            final AppWindowToken imeTargetAppToken =
                    && mInputMethodTarget.mAppToken != null
                    mInputMethodTarget != null ? mInputMethodTarget.mAppToken : null;
                    && mInputMethodTarget.mAppToken.appToken != null
            // We only include the Ime in the screenshot if the app we are screenshoting is the IME
                    && mInputMethodTarget.mAppToken.appToken.asBinder() == appToken;
            // target and isn't in multi-window mode. We don't screenshot the IME in multi-window
            // mode because the frame of the IME might not overlap with that of the app.
            // E.g. IME target app at the top in split-screen mode and the IME at the bottom
            // overlapping with the bottom app.
            includeImeInScreenshot = imeTargetAppToken != null
                    && imeTargetAppToken.appToken != null
                    && imeTargetAppToken.appToken.asBinder() == appToken
                    && !mInputMethodTarget.isInMultiWindowMode();
        }
        }


        final int aboveAppLayer = (mPolicy.windowTypeToLayerLw(TYPE_APPLICATION) + 1)
        final int aboveAppLayer = (mPolicy.windowTypeToLayerLw(TYPE_APPLICATION) + 1)
@@ -6174,7 +6181,7 @@ public class WindowManagerService extends IWindowManager.Stub
                    continue;
                    continue;
                }
                }
                if (ws.mIsImWindow) {
                if (ws.mIsImWindow) {
                    if (!appIsImTarget) {
                    if (!includeImeInScreenshot) {
                        continue;
                        continue;
                    }
                    }
                } else if (ws.mIsWallpaper) {
                } else if (ws.mIsWallpaper) {