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

Commit 1b025a60 authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

More multi-window fixes

- When exiting multi-window (taskOverride gets EMPTY), emulate
the same task configuration so we don't end up with unnecessary
relaunches.
- Fix flicker by not calling WM.setAppVisibility if the app is
already visible. setAppVisibility makes a dummy transition,
which sets the transformation's alpha to zero if we think that
the app is not visible, which is the case because the app is in
DRAW_PENDING state because we are waiting for it to exit the
dragResize mode, but it's really visible.

Change-Id: Ieb4f586ae86e1185b21a901c57883a1f19d58fee
parent 8202b2a5
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -2168,7 +2168,9 @@ final class ActivityStack {
            if (DEBUG_SWITCH) Slog.v(TAG_SWITCH, "Resume running: " + next);

            // This activity is now becoming visible.
            if (!next.visible) {
                mWindowManager.setAppVisibility(next.appToken, true);
            }

            // schedule launch ticks to collect information about slow apps.
            next.startLaunchTickingLocked();
@@ -4304,6 +4306,12 @@ final class ActivityStack {
            oldTaskOverride = record.task.extractOverrideConfig(record.configuration);
        }

        // Conversely, do the same when going the other direction.
        if (Configuration.EMPTY.equals(taskConfig)
                && !Configuration.EMPTY.equals(oldTaskOverride)) {
            taskConfig = record.task.extractOverrideConfig(record.configuration);
        }

        // Determine what has changed.  May be nothing, if this is a config
        // that has come back from the app after going idle.  In that case
        // we just want to leave the official config object now in the