forked from enlightenment/efl
efl_ui_focus_manager_calc: ensure that the coords are marked dirty
this is needed when a object is unregistered, otherwise a user of the event is not informed when a element is gone, and thus the border elements might have changed. Differential Revision: https://phab.enlightenment.org/D7353
This commit is contained in:
parent
e36dce177e
commit
ac8d16684d
|
@ -231,6 +231,7 @@ node_item_free(Node *item)
|
|||
Eina_List *l;
|
||||
Eo *obj = item->manager;
|
||||
FOCUS_DATA(obj);
|
||||
Eina_Bool dirty_added = EINA_FALSE;
|
||||
|
||||
/*cleanup graph parts*/
|
||||
|
||||
|
@ -243,6 +244,7 @@ node_item_free(Node *item)
|
|||
EINA_LIST_FOREACH(DIRECTION_ACCESS(node, i).field, l, partner) \
|
||||
{ \
|
||||
dirty_add(obj, pd, partner); \
|
||||
dirty_added = EINA_TRUE; \
|
||||
}
|
||||
|
||||
MAKE_LIST_DIRTY(item, one_direction)
|
||||
|
@ -252,6 +254,10 @@ node_item_free(Node *item)
|
|||
border_onedirection_set(item, i, NULL);
|
||||
}
|
||||
|
||||
//the unregistering of a item should ever result in atleast a coords_dirty call
|
||||
if (!dirty_added)
|
||||
efl_event_callback_call(obj, EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY, NULL);
|
||||
|
||||
/*cleanup manager householdings*/
|
||||
|
||||
//remove from the focus stack
|
||||
|
|
Loading…
Reference in New Issue