From: Junseok Kim Date: Wed, 21 May 2025 06:42:16 +0000 (+0900) Subject: e_policy_desk_area: remove private client when the client already in desk area X-Git-Tag: accepted/tizen/unified/20250610.081850~36 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4892c37a85d73d44039fc8f4e58d5bb255c47db5;p=platform%2Fupstream%2Fenlightenment.git e_policy_desk_area: remove private client when the client already in desk area Change-Id: I0365bc3cd039bfe62f0cfe7e7a4c7000dcc8e42d --- diff --git a/src/bin/windowmgr/e_policy_desk_area.c b/src/bin/windowmgr/e_policy_desk_area.c index ad3e4594a5..a18fe975b7 100644 --- a/src/bin/windowmgr/e_policy_desk_area.c +++ b/src/bin/windowmgr/e_policy_desk_area.c @@ -2997,6 +2997,15 @@ _e_policy_desk_area_cb_client_add(struct wl_listener *listener, void *data) eda = pda->desk_area; ec = (E_Client *) data; + eda_client = _e_policy_desk_area_private_client_get(ec); + if (eda_client) + { + if (eda_client->eda == eda) return; + + ELOGF("POLICY_DESK_AREA", "E_CLIENT(%p):%s: Already have desk area client, remove it", ec, ec, e_client_icccm_title_get(ec)); + e_desk_area_ec_remove(eda_client->eda, ec); + } + eda_client = _e_policy_desk_area_private_client_new(ec); eda_client->eda = eda;