Merge "Remove losing focus window list"
This commit is contained in:
@@ -117,7 +117,6 @@ 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.WindowManagerService.H.REPORT_FOCUS_CHANGE;
|
||||
import static com.android.server.wm.WindowManagerService.H.REPORT_HARD_KEYBOARD_STATUS_CHANGE;
|
||||
import static com.android.server.wm.WindowManagerService.H.REPORT_LOSING_FOCUS;
|
||||
import static com.android.server.wm.WindowManagerService.H.UPDATE_MULTI_WINDOW_STACKS;
|
||||
import static com.android.server.wm.WindowManagerService.H.WINDOW_HIDE_TIMEOUT;
|
||||
import static com.android.server.wm.WindowManagerService.LAYOUT_REPEAT_THRESHOLD;
|
||||
@@ -468,12 +467,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
*/
|
||||
WindowState mLastFocus = null;
|
||||
|
||||
/**
|
||||
* Windows that have lost input focus and are waiting for the new focus window to be displayed
|
||||
* before they are told about this.
|
||||
*/
|
||||
ArrayList<WindowState> mLosingFocus = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* The foreground app of this display. Windows below this app cannot be the focused window. If
|
||||
* the user taps on the area outside of the task of the focused app, we will notify AM about the
|
||||
@@ -899,10 +892,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
}
|
||||
}
|
||||
|
||||
if (!mLosingFocus.isEmpty() && w.isFocused() && w.isDisplayedLw()) {
|
||||
mWmService.mH.obtainMessage(REPORT_LOSING_FOCUS, this).sendToTarget();
|
||||
}
|
||||
|
||||
w.updateResizingWindowIfNeeded();
|
||||
};
|
||||
|
||||
@@ -2924,21 +2913,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
if (mLastFocus != mCurrentFocus) {
|
||||
pw.print(" mLastFocus="); pw.println(mLastFocus);
|
||||
}
|
||||
if (mLosingFocus.size() > 0) {
|
||||
pw.println();
|
||||
pw.println(" Windows losing focus:");
|
||||
for (int i = mLosingFocus.size() - 1; i >= 0; i--) {
|
||||
final WindowState w = mLosingFocus.get(i);
|
||||
pw.print(" Losing #"); pw.print(i); pw.print(' ');
|
||||
pw.print(w);
|
||||
if (dumpAll) {
|
||||
pw.println(":");
|
||||
w.dump(pw, " ", true);
|
||||
} else {
|
||||
pw.println();
|
||||
}
|
||||
}
|
||||
}
|
||||
pw.print(" mFocusedApp="); pw.println(mFocusedApp);
|
||||
if (mLastStatusBarVisibility != 0) {
|
||||
pw.print(" mLastStatusBarVisibility=0x");
|
||||
@@ -3157,7 +3131,6 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
|
||||
mCurrentFocus, newFocus, getDisplayId(), Debug.getCallers(4));
|
||||
final WindowState oldFocus = mCurrentFocus;
|
||||
mCurrentFocus = newFocus;
|
||||
mLosingFocus.remove(newFocus);
|
||||
|
||||
if (newFocus != null) {
|
||||
mWinAddedSinceNullFocus.clear();
|
||||
|
||||
@@ -4740,7 +4740,6 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
|
||||
final class H extends android.os.Handler {
|
||||
public static final int REPORT_FOCUS_CHANGE = 2;
|
||||
public static final int REPORT_LOSING_FOCUS = 3;
|
||||
public static final int WINDOW_FREEZE_TIMEOUT = 11;
|
||||
|
||||
public static final int PERSIST_ANIMATION_SCALE = 14;
|
||||
@@ -4815,11 +4814,6 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
ProtoLog.i(WM_DEBUG_FOCUS_LIGHT, "Focus moving from %s"
|
||||
+ " to %s displayId=%d", lastFocus, newFocus,
|
||||
displayContent.getDisplayId());
|
||||
if (newFocus != null && lastFocus != null && !newFocus.isDisplayedLw()) {
|
||||
ProtoLog.i(WM_DEBUG_FOCUS_LIGHT, "Delaying loss of focus...");
|
||||
displayContent.mLosingFocus.add(lastFocus);
|
||||
lastFocus = null;
|
||||
}
|
||||
}
|
||||
|
||||
// First notify the accessibility manager for the change so it has
|
||||
@@ -4842,24 +4836,6 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
break;
|
||||
}
|
||||
|
||||
case REPORT_LOSING_FOCUS: {
|
||||
final DisplayContent displayContent = (DisplayContent) msg.obj;
|
||||
ArrayList<WindowState> losers;
|
||||
|
||||
synchronized (mGlobalLock) {
|
||||
losers = displayContent.mLosingFocus;
|
||||
displayContent.mLosingFocus = new ArrayList<>();
|
||||
}
|
||||
|
||||
final int N = losers.size();
|
||||
for (int i = 0; i < N; i++) {
|
||||
ProtoLog.i(WM_DEBUG_FOCUS_LIGHT, "Losing delayed focus: %s",
|
||||
losers.get(i));
|
||||
losers.get(i).reportFocusChangedSerialized(false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case WINDOW_FREEZE_TIMEOUT: {
|
||||
final DisplayContent displayContent = (DisplayContent) msg.obj;
|
||||
synchronized (mGlobalLock) {
|
||||
|
||||
Reference in New Issue
Block a user