diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-11-23 12:38:00 +0100 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-11-26 11:37:04 +0100 |
commit | ac8d16684d0db97183f6eee4c0b430bc3eb179cc (patch) | |
tree | 0110bcb9e41e957f00603cc5a7195db629e83d42 | |
parent | e36dce177e41179913ab90dd13dd4260d67a3515 (diff) | |
download | efl-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.c | 6 |
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 |