e_policy_visibility: check map state of above window in _e_policy_check_above_alpha_o... 28/191928/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Thu, 25 Oct 2018 12:36:25 +0000 (21:36 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Thu, 25 Oct 2018 12:36:30 +0000 (21:36 +0900)
There was a bug that a window which was obscured by alpha opaque window was iconified.

[TOP] A win (32bit) -> B win (unmapped) -> C win [BOTTOM]
If "A win" change its opaque state to true, we expect that "C win" maintain unicoic state
and just change visibility value to fully-obscured.

But, there was no check code to above window's map state, "C win" was changed to iconic
and fully-obscured.

This patch fixes this problem.

Change-Id: I450521110681929ddf7898eea30db685e7a8609a

src/bin/e_policy_visibility.c

index b977c35..a6a87ea 100644 (file)
@@ -218,6 +218,7 @@ _e_policy_check_above_alpha_opaque(E_Client *ec)
         if (!above_ec) continue;
         if (e_client_util_ignored_get(above_ec)) continue;
         if (!E_CONTAINS(above_ec->x, above_ec->y, above_ec->w, above_ec->h, ec->x, ec->y, ec->w, ec->h)) continue;
+        if (above_ec->comp_data && !above_ec->comp_data->mapped) continue;
 
         if (above_ec->argb)
           {