e_policy_zone: remove policy desk object before remove desk 95/325195/1
authorJunseok Kim <juns.kim@samsung.com>
Wed, 28 May 2025 07:22:27 +0000 (16:22 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Wed, 4 Jun 2025 06:55:56 +0000 (15:55 +0900)
Change-Id: I8aaca76da03571a668fe033a9b3cd2ad7e84c9b9

src/bin/windowmgr/e_policy_zone.c

index 929b8dadaedbd677eab4733a84a882db86bbf3d2..0ff1c77dcba5ccb18aba6095be9b4305064994cb 100644 (file)
@@ -330,6 +330,7 @@ static void
 _e_policy_zone_cb_zone_destroy(struct wl_listener *listener, void *data)
 {
    E_Policy_Zone *policy_zone;
+   E_Policy_Desk *pd;
    E_Zone *zone;
    E_Desk *desk;
    E_Zone_Obstacle *obs;
@@ -339,7 +340,11 @@ _e_policy_zone_cb_zone_destroy(struct wl_listener *listener, void *data)
 
    /* free desks */
    EINA_LIST_FREE(policy_zone->desk_list, desk)
-     e_object_del(E_OBJECT(desk));
+     {
+        pd = e_policy_desk_get(desk);
+        if (pd) e_policy_desk_del(pd);
+        e_object_del(E_OBJECT(desk));
+     }
 
    EINA_LIST_FREE(zone->obstacles, obs)
      {