From adf1379026305c04eea6abaf664f978c533a46ba Mon Sep 17 00:00:00 2001 From: "Junseok, Kim" Date: Fri, 26 Jun 2020 21:56:24 +0900 Subject: [PATCH] e_desk: use cloned list of ECs in check_ec_in_desk_group func If using E_CLIENT_FOREACH in this function, it could cause miss out some ECs during stack changing. for prevent it, use cloned list. Change-Id: If68ecc00c92224e45afd2452b64795b13ad6404f Signed-off-by: Junseok, Kim --- src/bin/e_desk.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c index 55ec7ee797..6f214b236e 100644 --- a/src/bin/e_desk.c +++ b/src/bin/e_desk.c @@ -1741,6 +1741,7 @@ static void _e_desk_desk_group_check_ec_in_desk_group(E_Desk *desk) { E_Client *ec; + Eina_List *ec_list; E_CLIENT_FOREACH(ec) { @@ -1748,8 +1749,11 @@ _e_desk_desk_group_check_ec_in_desk_group(E_Desk *desk) if (e_object_is_del(E_OBJECT(ec))) continue; if (ec->desk_group.desk_group) continue; - e_client_desk_group_set(ec, desk->desk_group.base); + ec_list = eina_list_append(ec_list, ec); } + + EINA_LIST_FREE(ec_list, ec) + e_client_desk_group_set(ec, desk->desk_group.base); } E_API Eina_Bool -- 2.34.1