e_client: check visibility of the activated window when focus set to the window 87/305487/2 accepted/tizen/7.0/unified/20240205.015616 accepted/tizen/7.0/unified/20240205.161236
authorJunseok Kim <juns.kim@samsung.com>
Fri, 2 Feb 2024 07:48:45 +0000 (16:48 +0900)
committerJunseok Kim <juns.kim@samsung.com>
Fri, 2 Feb 2024 08:08:47 +0000 (17:08 +0900)
There was a bug that focus unset by focus calculate after focus set by activate.
(e.g. visible window but out of zone geometry)
This problem occures because the visibility of the activated window is not checked.
For fix this issue, check visibility of the activated window when focus set.

Change-Id: I5bcba59d7ca021e681be7931b279e744b32bfc97

src/bin/e_client.c

index d6f759ff72778ab63fcb1aaf5838ca7c0a46cf08..28a1edced7bcaf91c043736844e3a7b10a1cb800 100644 (file)
@@ -6147,7 +6147,8 @@ e_client_activate(E_Client *ec, Eina_Bool just_do_it)
              obscured_above = _e_client_check_fully_contain_by_above(focus_ec, EINA_FALSE);
              if (!obscured_above)
                {
-                  if (!e_policy_visibility_client_is_uniconic(ec))
+                  if (!e_policy_visibility_client_is_uniconic(ec) ||
+                      (ec->visibility.obscured == E_VISIBILITY_FULLY_OBSCURED))
                     {
                        e_client_focus_defer_set(focus_ec);
                        e_client_focus_latest_set(focus_ec);