From 02f564f331c95710928b56b2ae928fc7ffa67c98 Mon Sep 17 00:00:00 2001 From: chaviw Date: Tue, 3 May 2022 11:37:25 -0500 Subject: Set focus to WMS computed focus when embedded window drops focus If an internal system window wants to drop focus from an embedded window, requestFocusTransfer doesn't need to be called and instead we can directly call setFocusedWindow. This fixes the case where transfer focus fails if the old focused window loses visibility by the time the transfer request arrives. The transfer won't be allowed because the old window isn't focused anymore so we can't honor the transfer request. This fix is fine for internal system windows because there's no security issue with transferring focus from embedded to something WMS computes. However, there's still a race condition for cases where apps want to transfer focus from embedded back to host when they are setting visibility on the embedded window since the embedded window can become invisible before the transfer goes through. Test: Pip Menu focus lost Fixes: 230851770 Change-Id: I09db0bbdf4db6eeaffa30275233811b13ea31132 Merged-In: I09db0bbdf4db6eeaffa30275233811b13ea31132 --- data/etc/services.core.protolog.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'data') diff --git a/data/etc/services.core.protolog.json b/data/etc/services.core.protolog.json index 891c82d2c166..60da2e8cba27 100644 --- a/data/etc/services.core.protolog.json +++ b/data/etc/services.core.protolog.json @@ -2575,12 +2575,6 @@ "group": "WM_DEBUG_ANIM", "at": "com\/android\/server\/wm\/WindowContainer.java" }, - "397105698": { - "message": "grantEmbeddedWindowFocus remove request for win=%s dropped since no candidate was found", - "level": "VERBOSE", - "group": "WM_DEBUG_FOCUS", - "at": "com\/android\/server\/wm\/WindowManagerService.java" - }, "397382873": { "message": "Moving to PAUSED: %s %s", "level": "VERBOSE", @@ -3109,6 +3103,12 @@ "group": "WM_DEBUG_LOCKTASK", "at": "com\/android\/server\/wm\/LockTaskController.java" }, + "958338552": { + "message": "grantEmbeddedWindowFocus win=%s dropped focus so setting focus to null since no candidate was found", + "level": "VERBOSE", + "group": "WM_DEBUG_FOCUS", + "at": "com\/android\/server\/wm\/WindowManagerService.java" + }, "959486822": { "message": "setSyncGroup #%d on %s", "level": "VERBOSE", -- cgit v1.2.3-59-g8ed1b