PIP window cant be ime target.
Check both Task and ActivityRecord windowing mode to make sure PIP window can't become IME target. Bug: 156915118 Test: Manually using steps mentioned in bug. Change-Id: Ie6de7f31c36978fe8ec5aef2105b5e7edff5fa32
This commit is contained in:
@@ -2198,10 +2198,13 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
|
||||
@Override
|
||||
boolean isFocusable() {
|
||||
return super.isFocusable() && (canReceiveKeys() || isAlwaysFocusable());
|
||||
}
|
||||
|
||||
boolean canReceiveKeys() {
|
||||
// TODO(156521483): Propagate the state down the hierarchy instead of checking the parent
|
||||
boolean canReceiveKeys = getWindowConfiguration().canReceiveKeys()
|
||||
&& getTask().getWindowConfiguration().canReceiveKeys();
|
||||
return super.isFocusable() && (canReceiveKeys || isAlwaysFocusable());
|
||||
return getWindowConfiguration().canReceiveKeys()
|
||||
&& (task == null || task.getWindowConfiguration().canReceiveKeys());
|
||||
}
|
||||
|
||||
boolean isResizeable() {
|
||||
@@ -2370,10 +2373,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
||||
// For the apps below Q, there can be only one app which has the focused window per
|
||||
// process, because legacy apps may not be ready for a multi-focus system.
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
return (getWindowConfiguration().canReceiveKeys() || isAlwaysFocusable())
|
||||
&& getDisplay() != null;
|
||||
return (canReceiveKeys() || isAlwaysFocusable()) && getDisplay() != null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user