From 229e2bd5b70c50a226f5dfdd6ebe59c0b63f2899 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Thu, 14 Oct 2021 19:26:30 +0900 Subject: [PATCH] e_policy_wl: check map state while unsetting background state Change-Id: Ia0f5e6c13f2be7be58cf045a4573d6d2f83ade03 --- src/bin/e_policy_wl.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/bin/e_policy_wl.c b/src/bin/e_policy_wl.c index 56a6387..c9465ec 100644 --- a/src/bin/e_policy_wl.c +++ b/src/bin/e_policy_wl.c @@ -2613,26 +2613,33 @@ _e_policy_wl_background_state_apply(E_Client *ec, Eina_Bool state) if (!ec) return; ELOGF("TZPOL", - "BACKGROUND STATE %s for PID(%u)", + "BACKGROUND STATE %s for PID(%u), iconic:%d", ec, - state?"SET":"UNSET", ec->netwm.pid); + state?"SET":"UNSET", ec->netwm.pid, ec->iconic); if (state) { ec->bg_state = EINA_TRUE; evas_object_hide(ec->frame); e_pixmap_image_clear(ec->pixmap, 1); - EC_CHANGED(ec); } else { ec->bg_state = EINA_FALSE; if (!ec->iconic) { - evas_object_show(ec->frame); - e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h); + E_Comp_Wl_Client_Data *cdata; + cdata = e_client_cdata_get(ec); + if (cdata && cdata->mapped) + { + evas_object_show(ec->frame); + e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h); + } } } + + EC_CHANGED(ec); + e_client_visibility_calculate(); } static void -- 2.7.4