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

Commit 28024d64 authored by Wale Ogunwale's avatar Wale Ogunwale Committed by android-build-merger
Browse files

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

am: de5a7afc

* commit 'de5a7afc':
  Don't include IME in app screenshot while in multi-window mode

Change-Id: I38856256a6da41e16c2433079f0476ee44b8faac
parents cb4465d5 de5a7afc
Loading
Loading
Loading
Loading
+13 −6
Original line number Diff line number Diff line
@@ -6150,12 +6150,19 @@ public class WindowManagerService extends IWindowManager.Stub

        WindowState appWin = null;

        boolean appIsImTarget;
        boolean includeImeInScreenshot;
        synchronized(mWindowMap) {
            appIsImTarget = mInputMethodTarget != null
                    && mInputMethodTarget.mAppToken != null
                    && mInputMethodTarget.mAppToken.appToken != null
                    && mInputMethodTarget.mAppToken.appToken.asBinder() == appToken;
            final AppWindowToken imeTargetAppToken =
                    mInputMethodTarget != null ? mInputMethodTarget.mAppToken : null;
            // We only include the Ime in the screenshot if the app we are screenshoting is the IME
            // 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)
@@ -6174,7 +6181,7 @@ public class WindowManagerService extends IWindowManager.Stub
                    continue;
                }
                if (ws.mIsImWindow) {
                    if (!appIsImTarget) {
                    if (!includeImeInScreenshot) {
                        continue;
                    }
                } else if (ws.mIsWallpaper) {