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

Commit b38e5406 authored by Taran Singh's avatar Taran Singh
Browse files

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
parent fc8443cf
Loading
Loading
Loading
Loading
+8 −5
Original line number Diff line number Diff line
@@ -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;
    }

    /**