summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2018-11-23 12:38:00 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2018-11-26 11:37:04 +0100
commitac8d16684d0db97183f6eee4c0b430bc3eb179cc (patch)
tree0110bcb9e41e957f00603cc5a7195db629e83d42
parente36dce177e41179913ab90dd13dd4260d67a3515 (diff)
downloadefl-ac8d16684d0db97183f6eee4c0b430bc3eb179cc.tar.gz
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
-rw-r--r--src/lib/elementary/efl_ui_focus_manager_calc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c b/src/lib/elementary/efl_ui_focus_manager_calc.c
index 1906ddd931..e4d0332889 100644
--- a/src/lib/elementary/efl_ui_focus_manager_calc.c
+++ b/src/lib/elementary/efl_ui_focus_manager_calc.c
@@ -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