From c61e876931bb8ce2cefe67ed9bbb16ffab811f78 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Wed, 17 Oct 2018 16:53:24 +0900 Subject: [PATCH] e_policy_visibility: fix bug for changing iconic state incorrectly There was a bug that the fully obscured window was uniconified and iconified as below case. [top] alpha-opaque window -> A win -> B win -> C win [bottom] In above stack, when "B win" is lowered/hidden, then "C win" is changed to uniconic and iconic state for a moment. We fixed code not to change iconic state. Change-Id: Ibd742f972c9b189e28185837eee85db0a941fdad --- src/bin/e_policy_visibility.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/bin/e_policy_visibility.c b/src/bin/e_policy_visibility.c index 594d86f..b977c35 100644 --- a/src/bin/e_policy_visibility.c +++ b/src/bin/e_policy_visibility.c @@ -1552,6 +1552,9 @@ _e_vis_ec_above_visible_type(E_Client *ec, Eina_Bool check_child) continue; } + if (above->iconic && above->exp_iconify.by_client) + continue; + if (above->visibility.obscured == E_VISIBILITY_UNOBSCURED) { if (!above->argb) @@ -1561,9 +1564,16 @@ _e_vis_ec_above_visible_type(E_Client *ec, Eina_Bool check_child) if (above->visibility.opaque > 0) above_vis_type = E_POL_VIS_TYPE_ALPHA_OPAQUE; } + } + else + { + if (!above->visible) + continue; - break; + above_vis_type = E_POL_VIS_TYPE_NON_ALPHA; } + + break; } return above_vis_type; -- 2.7.4