e_client: focus unset when there's no focusable window using topmost focus policy. 13/266513/1
authorJunseok, Kim <juns.kim@samsung.com>
Fri, 5 Nov 2021 04:48:40 +0000 (13:48 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Sat, 13 Nov 2021 04:21:08 +0000 (13:21 +0900)
Change-Id: I8ccc5fe2ed960a39bf9a2c7095c892d7794f4afe

src/bin/e_client.c

index dfc82019da22b7dfba5f5fc457f6f33b3b3aee13..80e98f0e06473ac744f2342af3fcdfc47b725d05 100644 (file)
@@ -1095,6 +1095,11 @@ e_client_revert_focus(E_Client *ec)
              ELOGF("FOCUS", "focus set   | topmost_focus", focus_ec);
              e_client_frame_focus_set(focus_ec, EINA_TRUE);
           }
+        else if (focused && (focus_ec == NULL))
+          {
+             ELOGF("FOCUS", "focus unset | No focusable ec", focused);
+             e_client_frame_focus_set(focused, EINA_FALSE);
+          }
         return;
      }
 
@@ -3724,6 +3729,11 @@ _e_client_focus_calculate(E_Zone *zone)
              ELOGF("FOCUS", "focus set | topmost focus calculate", ec);
              e_client_frame_focus_set(ec, EINA_TRUE);
           }
+        else if (focused && (ec == NULL))
+          {
+             ELOGF("FOCUS", "focus unset | No focusable ec", focused);
+             e_client_frame_focus_set(focused, EINA_FALSE);
+          }
         return;
      }