summaryrefslogtreecommitdiff
path: root/src/lib/elementary
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 /src/lib/elementary
parente36dce177e41179913ab90dd13dd4260d67a3515 (diff)
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
Diffstat (limited to 'src/lib/elementary')
-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)
231 Eina_List *l; 231 Eina_List *l;
232 Eo *obj = item->manager; 232 Eo *obj = item->manager;
233 FOCUS_DATA(obj); 233 FOCUS_DATA(obj);
234 Eina_Bool dirty_added = EINA_FALSE;
234 235
235 /*cleanup graph parts*/ 236 /*cleanup graph parts*/
236 237
@@ -243,6 +244,7 @@ node_item_free(Node *item)
243 EINA_LIST_FOREACH(DIRECTION_ACCESS(node, i).field, l, partner) \ 244 EINA_LIST_FOREACH(DIRECTION_ACCESS(node, i).field, l, partner) \
244 { \ 245 { \
245 dirty_add(obj, pd, partner); \ 246 dirty_add(obj, pd, partner); \
247 dirty_added = EINA_TRUE; \
246 } 248 }
247 249
248 MAKE_LIST_DIRTY(item, one_direction) 250 MAKE_LIST_DIRTY(item, one_direction)
@@ -252,6 +254,10 @@ node_item_free(Node *item)
252 border_onedirection_set(item, i, NULL); 254 border_onedirection_set(item, i, NULL);
253 } 255 }
254 256
257 //the unregistering of a item should ever result in atleast a coords_dirty call
258 if (!dirty_added)
259 efl_event_callback_call(obj, EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY, NULL);
260
255 /*cleanup manager householdings*/ 261 /*cleanup manager householdings*/
256 262
257 //remove from the focus stack 263 //remove from the focus stack