Merge "Don't include IME in app screenshot while in multi-window mode" into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
de5a7afc79
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user