E_Zone *zone;
Eina_Hash *clients_hash;
+ Eina_List *ec_hooks;
+
struct wl_listener client_add;
struct wl_listener has_ec;
struct wl_listener zone_destroy;
}
// CLIENT HOOK Handlers
- E_LIST_HOOK_APPEND(zone->ec_hooks, E_CLIENT_HOOK_NEW_CLIENT_POST, _e_policy_zone_cb_hook_client_new_client_post, zone);
+ E_LIST_HOOK_APPEND(policy_zone->ec_hooks, E_CLIENT_HOOK_NEW_CLIENT_POST, _e_policy_zone_cb_hook_client_new_client_post, zone);
// zone listeners
policy_zone->client_add.notify = _e_policy_zone_cb_client_add;
// TODO:: need policy desk remove?
// zone listeners
-
+ wl_list_remove(&policy_zone->client_add.link);
+ wl_list_remove(&policy_zone->has_ec.link);
+ wl_list_remove(&policy_zone->zone_destroy.link);
+ wl_list_remove(&policy_zone->move.link);
+ wl_list_remove(&policy_zone->resize.link);
+ wl_list_remove(&policy_zone->move_resize.link);
+ wl_list_remove(&policy_zone->is_current.link);
+ wl_list_remove(&policy_zone->desk_count_set.link);
+ wl_list_remove(&policy_zone->obstacle_add.link);
+ wl_list_remove(&policy_zone->obstacle_update.link);
+ wl_list_remove(&policy_zone->obstacle_remove.link);
+ wl_list_remove(&policy_zone->useful_geometry_get.link);
+ wl_list_remove(&policy_zone->focused_client_get.link);
+ wl_list_remove(&policy_zone->focused_client_set.link);
+
+ wl_list_remove(&policy_zone->desk_row_add.link);
+ wl_list_remove(&policy_zone->desk_row_remove.link);
+ wl_list_remove(&policy_zone->desk_col_add.link);
+ wl_list_remove(&policy_zone->desk_col_remove.link);
+ wl_list_remove(&policy_zone->desk_current_get.link);
+ wl_list_remove(&policy_zone->desk_at_xy_get.link);
+ wl_list_remove(&policy_zone->desk_at_pos_get.link);
+ wl_list_remove(&policy_zone->desk_next.link);
+ wl_list_remove(&policy_zone->desk_prev.link);
+ wl_list_remove(&policy_zone->desk_count.link);
+
+ wl_list_remove(&policy_zone->focus_focused_ec_changed.link);
wl_list_remove(&policy_zone->zone_client_visible_below_get.link);
wl_list_remove(&policy_zone->zone_client_visible_above_get.link);
wl_list_remove(&policy_zone->zone_client_above_get.link);
wl_list_remove(&policy_zone->zone_client_bottom_get.link);
wl_list_remove(&policy_zone->zone_client_top_get.link);
- wl_list_remove(&policy_zone->zone_destroy.link);
+
+ E_FREE_LIST(policy_zone->ec_hooks, e_client_hook_del);
if (policy_zone->clients_hash)
{