From 7a3876ffc9436db9771275d2ca887fc1af5c7e57 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 4 Aug 2017 16:23:38 -0400 Subject: [PATCH] add and use new event for zone useful geometry changing many times it's useful to have an event for actual zone geometry change vs useful geomtry change, so split this out and use the right handler where appropriate --- src/bin/e_comp_canvas.c | 6 +----- src/bin/e_zone.c | 12 +++++++----- src/bin/e_zone.h | 1 + src/modules/fileman/e_fwin.c | 2 +- src/modules/gadman/e_mod_gadman.c | 3 ++- 5 files changed, 12 insertions(+), 12 deletions(-) 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)