diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c index b0b4e904d..5fe089a9e 100644 --- a/src/bin/e_comp_canvas.c +++ b/src/bin/e_comp_canvas.c @@ -240,12 +240,8 @@ _e_comp_cb_mouse_move(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mouse_ //////////////////////////////////// static Eina_Bool -_e_comp_cb_zone_change(void *d EINA_UNUSED, int t, E_Event_Zone_Move_Resize *ev) +_e_comp_cb_zone_change() { - if (ev->zone->useful_geometry_dirty && (t == E_EVENT_ZONE_MOVE_RESIZE)) - { - if (!e_zone_useful_geometry_get(ev->zone, NULL, NULL, NULL, NULL)) return ECORE_CALLBACK_RENEW; - } e_comp_canvas_update(); return ECORE_CALLBACK_PASS_ON; } diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index b1905deb3..d27c81dab 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -22,6 +22,7 @@ static void _e_zone_obstacle_free(E_Zone_Obstacle *obs); E_API int E_EVENT_ZONE_DESK_COUNT_SET = 0; E_API int E_EVENT_POINTER_WARP = 0; +E_API int E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGED = 0; E_API int E_EVENT_ZONE_MOVE_RESIZE = 0; E_API int E_EVENT_ZONE_ADD = 0; E_API int E_EVENT_ZONE_DEL = 0; @@ -44,6 +45,7 @@ e_zone_init(void) E_EVENT_ZONE_DESK_COUNT_SET = ecore_event_type_new(); E_EVENT_POINTER_WARP = ecore_event_type_new(); E_EVENT_ZONE_MOVE_RESIZE = ecore_event_type_new(); + E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGED = ecore_event_type_new(); E_EVENT_ZONE_ADD = ecore_event_type_new(); E_EVENT_ZONE_DEL = ecore_event_type_new(); E_EVENT_ZONE_EDGE_IN = ecore_event_type_new(); @@ -274,7 +276,7 @@ e_zone_name_set(E_Zone *zone, } static void -e_zone_reconfigure_clients(E_Zone *zone, int dx, int dy, int dw, int dh) +e_zone_reconfigure_clients(E_Zone *zone, int dx, int dy) { E_Client *ec; @@ -314,7 +316,7 @@ e_zone_move(E_Zone *zone, _e_zone_edge_move_resize(zone); e_zone_bg_reconfigure(zone); - e_zone_reconfigure_clients(zone, dx, dy, 0, 0); + e_zone_reconfigure_clients(zone, dx, dy); } E_API void @@ -343,7 +345,7 @@ e_zone_resize(E_Zone *zone, _e_zone_edge_move_resize(zone); e_zone_bg_reconfigure(zone); - e_zone_reconfigure_clients(zone, 0, 0, dw, dh); + e_zone_reconfigure_clients(zone, 0, 0); } E_API Eina_Bool @@ -384,7 +386,7 @@ e_zone_move_resize(E_Zone *zone, _e_zone_edge_move_resize(zone); e_zone_bg_reconfigure(zone); - e_zone_reconfigure_clients(zone, dx, dy, dw, dh); + e_zone_reconfigure_clients(zone, dx, dy); return EINA_TRUE; } @@ -1335,7 +1337,7 @@ e_zone_useful_geometry_dirty(E_Zone *zone) ev = E_NEW(E_Event_Zone_Move_Resize, 1); ev->zone = zone; e_object_ref(E_OBJECT(ev->zone)); - ecore_event_add(E_EVENT_ZONE_MOVE_RESIZE, ev, _e_zone_event_generic_free, NULL); + ecore_event_add(E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGED, ev, _e_zone_event_generic_free, NULL); zone->useful_geometry_dirty = 1; } diff --git a/src/bin/e_zone.h b/src/bin/e_zone.h index 25d98f3b3..f3c3eaa6c 100644 --- a/src/bin/e_zone.h +++ b/src/bin/e_zone.h @@ -172,6 +172,7 @@ E_API E_Zone *e_zone_for_id_get(const char *id); extern E_API int E_EVENT_ZONE_DESK_COUNT_SET; extern E_API int E_EVENT_ZONE_MOVE_RESIZE; +extern E_API int E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGED; extern E_API int E_EVENT_ZONE_ADD; extern E_API int E_EVENT_ZONE_DEL; extern E_API int E_EVENT_POINTER_WARP; diff --git a/src/modules/fileman/e_fwin.c b/src/modules/fileman/e_fwin.c index 0ecd5a55c..f673d5ce8 100644 --- a/src/modules/fileman/e_fwin.c +++ b/src/modules/fileman/e_fwin.c @@ -436,7 +436,7 @@ e_fwin_zone_new(E_Zone *zone, void *p) /* Add Event Handler for zone move/resize & del */ fwin->zone_handler = - ecore_event_handler_add(E_EVENT_ZONE_MOVE_RESIZE, + ecore_event_handler_add(E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGED, _e_fwin_zone_move_resize, fwin); fwin->zone_del_handler = ecore_event_handler_add(E_EVENT_ZONE_DEL, diff --git a/src/modules/gadman/e_mod_gadman.c b/src/modules/gadman/e_mod_gadman.c index dc48fc3dd..b2724ce31 100644 --- a/src/modules/gadman/e_mod_gadman.c +++ b/src/modules/gadman/e_mod_gadman.c @@ -1585,6 +1585,7 @@ _e_gadman_handlers_add(void) { E_LIST_HANDLER_APPEND(_gadman_hdls, E_EVENT_ZONE_ADD, _e_gadman_cb_zone_change, NULL); E_LIST_HANDLER_APPEND(_gadman_hdls, E_EVENT_ZONE_MOVE_RESIZE, _e_gadman_cb_zone_change, NULL); + E_LIST_HANDLER_APPEND(_gadman_hdls, E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGED, _e_gadman_cb_zone_change, NULL); E_LIST_HANDLER_APPEND(_gadman_hdls, E_EVENT_ZONE_DEL, _e_gadman_cb_zone_change, NULL); E_LIST_HANDLER_APPEND(_gadman_hdls, E_EVENT_MODULE_UPDATE, _gadman_module_cb, NULL); E_LIST_HANDLER_APPEND(_gadman_hdls, E_EVENT_MODULE_INIT_END, _gadman_module_init_end_cb, NULL); @@ -1637,7 +1638,7 @@ _e_gadman_cb_zone_change(void *data EINA_UNUSED, int type, void *event) if (!Man) return ECORE_CALLBACK_RENEW; if (gadman_locked) return ECORE_CALLBACK_RENEW; - if (type == E_EVENT_ZONE_MOVE_RESIZE) + if ((type == E_EVENT_ZONE_MOVE_RESIZE) || (type == E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGED)) { /* probably zone dirty being set */ EINA_LIST_FOREACH(Man->gadcons[GADMAN_LAYER_BG], l, gc)