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
This commit is contained in:
parent
fe95a5841f
commit
7a3876ffc9
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue