e_client: Unset current focus when the new focusable ec found 10/284510/1
authorJunseok Kim <juns.kim@samsung.com>
Fri, 18 Nov 2022 05:43:22 +0000 (14:43 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 18 Nov 2022 08:24:07 +0000 (17:24 +0900)
commit5ecd0d29dc92874e0a7e4e57fcc2ba689a4cd631
treec386f74e9790e17009c6247f171c9746040c1651
parent35dc0a373a4c31b587b7848c09a590894cd84ca1
e_client: Unset current focus when the new focusable ec found

There was a bug that couldn't receive focus changed event when client unobscured by activate using topmost focus policy.

For more detail, in topmost focus policy, issues following below sequence.
1. Focused window(winA) requests Activate below to fully obscured window(winB).
2. winA requests Activate before winB showing.

The Activate below request didn't doing uniconify render, so stack was changed immediately.
and it cause visiblity changes immediately and visibility changed event send to each client.

The winB didn't focused because of the winB is not shown till the uniconify rendering by visibility.
in this case, winA still focused but winA is not focusable window before winB shown or winA Activated.

It can cause the client didn't receive focus changed event after the client unobscured.
(client regards the fully-obscured means loose focus)

for fix this problem, always focus unset before focused window when there're new focusable window.

Change-Id: Iaccfa5ed77bd46f58a4f82acd9109e534da54606
src/bin/e_client.c