e_policy_visibility: Skip uniconify render when the client sets BG state 81/319781/1
authorJunseok Kim <juns.kim@samsung.com>
Wed, 30 Oct 2024 08:10:45 +0000 (17:10 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Fri, 1 Nov 2024 02:42:40 +0000 (11:42 +0900)
Until now, only the iconified clients are pended for uniconify render when client sets Backgroud state.

However, when the client that in iconifed and background state requests uniconify and lower,
There was a issue that the client raise to the top when the client ends their uniconify rendering.

Keypoint of issue is inconsistent of the client's uniconify render and cancellation conditions.
During the client's uniconify process,
the client checks for both the background state and the iconic state before performing the uniconify rendering operation.
however, during the client's lower process,
the client only checks the background state and it causes did not canceling the uniconify render job, which is caused the problem.

To fix this issue and maintain consistency,
only the background state will be checked excluding the iconic state when client requests raise, activate, and uniconify.

Change-Id: I9252b3acc6768eb2b3be6b13b7ee405640109006

src/bin/windowmgr/e_policy_visibility.c

index 44e2256142a61ad794f620acb1e35328ba9db1ed..1054b32430b6cf6d07c02c75867686054466012b 100644 (file)
@@ -2503,7 +2503,7 @@ e_policy_visibility_client_raise(E_Client *ec)
    if (e_client_is_iconified_by_client(ec))
      return EINA_FALSE;
 
-   if (!ec->iconic && ec->bg_state)
+   if (ec->bg_state)
      {
         ELOGF("POL", "Currently bg_state. so return...", ec);
         return EINA_FALSE;
@@ -2641,7 +2641,7 @@ e_policy_visibility_client_uniconify(E_Client *ec, Eina_Bool raise)
         return EINA_FALSE;
      }
 
-   if (!ec->iconic && ec->bg_state)
+   if (ec->bg_state)
      {
         ELOGF("POL", "Currently bg_state. so return...", ec);
         return EINA_FALSE;
@@ -2695,7 +2695,7 @@ e_policy_visibility_client_activate(E_Client *ec)
 
    E_VIS_CLIENT_GET_OR_RETURN_VAL(vc, ec, EINA_FALSE);
 
-   if (!ec->iconic && ec->bg_state)
+   if (ec->bg_state)
      {
         ELOGF("POL", "Currently bg_state. so return...", ec);
         return EINA_FALSE;