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

Commit f8b32661 authored by Filip Gruszczynski's avatar Filip Gruszczynski Committed by Android (Google) Code Review
Browse files

Merge "Fix flashing dialogs when IME enters/exits."

parents 4f6d400b c46f41c5
Loading
Loading
Loading
Loading
+9 −2
Original line number Original line Diff line number Diff line
@@ -224,11 +224,14 @@ import static com.android.server.wm.WindowManagerDebugConfig.SHOW_LIGHT_TRANSACT
import static com.android.server.wm.WindowManagerDebugConfig.SHOW_SURFACE_ALLOC;
import static com.android.server.wm.WindowManagerDebugConfig.SHOW_SURFACE_ALLOC;
import static com.android.server.wm.WindowManagerDebugConfig.SHOW_TRANSACTIONS;
import static com.android.server.wm.WindowManagerDebugConfig.SHOW_TRANSACTIONS;
import static com.android.server.wm.WindowManagerDebugConfig.SHOW_VERBOSE_TRANSACTIONS;
import static com.android.server.wm.WindowManagerDebugConfig.SHOW_VERBOSE_TRANSACTIONS;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;


/** {@hide} */
/** {@hide} */
public class WindowManagerService extends IWindowManager.Stub
public class WindowManagerService extends IWindowManager.Stub
        implements Watchdog.Monitor, WindowManagerPolicy.WindowManagerFuncs {
        implements Watchdog.Monitor, WindowManagerPolicy.WindowManagerFuncs {
    private static final String TAG = TAG_WITH_CLASS_NAME ? "WindowManagerService" : TAG_WM;

    static final int LAYOUT_REPEAT_THRESHOLD = 4;
    static final int LAYOUT_REPEAT_THRESHOLD = 4;


    static final boolean PROFILE_ORIENTATION = false;
    static final boolean PROFILE_ORIENTATION = false;
@@ -2428,13 +2431,17 @@ public class WindowManagerService extends IWindowManager.Stub
        }
        }
    }
    }


    void setInsetsWindow(Session session, IWindow client,
    void setInsetsWindow(Session session, IWindow client, int touchableInsets, Rect contentInsets,
            int touchableInsets, Rect contentInsets,
            Rect visibleInsets, Region touchableRegion) {
            Rect visibleInsets, Region touchableRegion) {
        long origId = Binder.clearCallingIdentity();
        long origId = Binder.clearCallingIdentity();
        try {
        try {
            synchronized (mWindowMap) {
            synchronized (mWindowMap) {
                WindowState w = windowForClientLocked(session, client, false);
                WindowState w = windowForClientLocked(session, client, false);
                if (DEBUG_LAYOUT) Slog.d(TAG, "setInsetsWindow " + w
                        + ", contentInsets=" + w.mGivenContentInsets + " -> " + contentInsets
                        + ", visibleInsets=" + w.mGivenVisibleInsets + " -> " + visibleInsets
                        + ", touchableRegion=" + w.mGivenTouchableRegion + " -> " + touchableRegion
                        + ", touchableInsets " + w.mTouchableInsets + " -> " + touchableInsets);
                if (w != null) {
                if (w != null) {
                    w.mGivenInsetsPending = false;
                    w.mGivenInsetsPending = false;
                    w.mGivenContentInsets.set(contentInsets);
                    w.mGivenContentInsets.set(contentInsets);
+9 −7
Original line number Original line Diff line number Diff line
@@ -739,13 +739,15 @@ class WindowSurfacePlacer {
                            }
                            }
                        }
                        }
                    }
                    }
                    /*
                    if (!winAnimator.isAnimating()) {
                     * Updates the shown frame before we set up the surface. This is needed because
                        // Updates the shown frame before we set up the surface. This is needed
                     * the resizing could change the top-left position (in addition to size) of the
                        // because the resizing could change the top-left position (in addition to
                     * window. setSurfaceBoundariesLocked uses mShownPosition to position the
                        // size) of the window. setSurfaceBoundariesLocked uses mShownPosition to
                      * surface.
                        // position the surface. We only apply it to windows that aren't animating,
                     */
                        // because we depend on the animation to calculate the correct shown frame
                        // on the next animation step.
                        winAnimator.computeShownFrameLocked();
                        winAnimator.computeShownFrameLocked();
                    }
                    winAnimator.setSurfaceBoundariesLocked(recoveringMemory);
                    winAnimator.setSurfaceBoundariesLocked(recoveringMemory);
                }
                }