Exclude IME dialogs from tap outside task bounds funcationality

We don't want tapping on these windows to cause a change in app
focus.

Bug: 28184155
Change-Id: Ibd4ca15b2154c2e83a11f4a2a3edb4356cbfbfed
This commit is contained in:
Wale Ogunwale
2016-04-20 16:33:36 -07:00
parent 8095309791
commit 1f19261527

View File

@@ -1805,6 +1805,16 @@ public class WindowManagerService extends IWindowManager.Stub
return true;
}
private static boolean excludeWindowTypeFromTapOutTask(int windowType) {
switch (windowType) {
case TYPE_STATUS_BAR:
case TYPE_NAVIGATION_BAR:
case TYPE_INPUT_METHOD_DIALOG:
return true;
}
return false;
}
public int addWindow(Session session, IWindow client, int seq,
WindowManager.LayoutParams attrs, int viewVisibility, int displayId,
Rect outContentInsets, Rect outStableInsets, Rect outOutsets,
@@ -2003,7 +2013,7 @@ public class WindowManagerService extends IWindowManager.Stub
res = WindowManagerGlobal.ADD_OKAY;
if (type == TYPE_STATUS_BAR || type == TYPE_NAVIGATION_BAR) {
if (excludeWindowTypeFromTapOutTask(type)) {
displayContent.mTapExcludedWindows.add(win);
}
@@ -2395,7 +2405,7 @@ public class WindowManagerService extends IWindowManager.Stub
}
final int type = win.mAttrs.type;
if (type == TYPE_STATUS_BAR || type == TYPE_NAVIGATION_BAR) {
if (excludeWindowTypeFromTapOutTask(type)) {
final DisplayContent displaycontent = win.getDisplayContent();
displaycontent.mTapExcludedWindows.remove(win);
}