Merge "[wm] Use existing parent window token for child windows" into rvc-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e966c47691
@@ -1476,9 +1476,14 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
rootType, attrs.token, attrs.packageName)) {
|
||||
return WindowManagerGlobal.ADD_BAD_APP_TOKEN;
|
||||
}
|
||||
final IBinder binder = attrs.token != null ? attrs.token : client.asBinder();
|
||||
token = new WindowToken(this, binder, type, false, displayContent,
|
||||
session.mCanAddInternalSystemWindow, isRoundedCornerOverlay);
|
||||
if (hasParent) {
|
||||
// Use existing parent window token for child windows.
|
||||
token = parentWindow.mToken;
|
||||
} else {
|
||||
final IBinder binder = attrs.token != null ? attrs.token : client.asBinder();
|
||||
token = new WindowToken(this, binder, type, false, displayContent,
|
||||
session.mCanAddInternalSystemWindow, isRoundedCornerOverlay);
|
||||
}
|
||||
} else if (rootType >= FIRST_APPLICATION_WINDOW
|
||||
&& rootType <= LAST_APPLICATION_WINDOW) {
|
||||
activity = token.asActivityRecord();
|
||||
|
||||
@@ -78,6 +78,10 @@ public class WindowTokenTests extends WindowTestsBase {
|
||||
assertFalse(token.hasWindow(window12));
|
||||
assertTrue(token.hasWindow(window2));
|
||||
assertTrue(token.hasWindow(window3));
|
||||
|
||||
// The child windows should have the same window token as their parents.
|
||||
assertEquals(window1.mToken, window11.mToken);
|
||||
assertEquals(window1.mToken, window12.mToken);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user