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

Commit f9705dd8 authored by Tiger Huang's avatar Tiger Huang
Browse files

Refine excludeInvisibleImeFrames

When adding a window to WMS, its z-order may be higher than IME
initially. And then, WMS will move IME to the top of the new window.
Although IME is invisible during launching an app, that causes a change
in WindowState#mAboveInsetsState. And it would trigger a redundant
onApplyWindowInsets at the client side.

This CL treats null IME source as invisible IME source in
InsetsState#equals when excludeInvisibleImeFrames is true.

Bug: 237749017
Test: Add logs in dispatchApplyWindowInsets, and see if it gets printed
      twice while launching an app.
Change-Id: I5eba7732619f7ceebe3152e81037a43e9ab3d91f
parent 03fe0878
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -909,6 +909,11 @@ public class InsetsState implements Parcelable {
            if (source == null && otherSource == null) {
                continue;
            }
            if (excludeInvisibleImeFrames && i == ITYPE_IME
                    && ((source == null && !otherSource.isVisible())
                            || (otherSource == null && !source.isVisible()))) {
                continue;
            }
            if (source == null || otherSource == null) {
                return false;
            }