diff options
author | WooHyun Jung <wh0705.jung@samsung.com> | 2014-05-23 11:07:59 +0900 |
---|---|---|
committer | WooHyun Jung <wh0705.jung@samsung.com> | 2014-05-23 11:07:59 +0900 |
commit | 44ea0a16efa6012a66be6215cff364cf59a81edc (patch) | |
tree | 07f78facfec94e30c3ad3aa37fc715646d9dcd3c | |
parent | 497cc15ac2e42e3ba7b100fdbf3987fd91476d8b (diff) | |
download | elementary-44ea0a16efa6012a66be6215cff364cf59a81edc.tar.gz |
win: set NULL to focus_highlight.prev.target when it's deleted.
-rw-r--r-- | src/lib/elm_win.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index 5976315c7..68e603ee6 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -806,6 +806,16 @@ _elm_win_focus_highlight_simple_setup(Elm_Win_Data *sd, } static void +_elm_win_focus_prev_target_del(void *data, + Evas *e EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + ELM_WIN_DATA_GET(data, sd); + sd->focus_highlight.prev.target = NULL; +} + +static void _elm_win_focus_highlight_reconfigure_job(void *data) { ELM_WIN_DATA_GET(data, sd); @@ -829,8 +839,12 @@ _elm_win_focus_highlight_reconfigure_job(void *data) return; if ((previous) && (sd->focus_highlight.prev.in_theme)) - elm_widget_signal_emit - (previous, "elm,action,focus_highlight,hide", "elm"); + { + evas_object_event_callback_del_full + (previous, EVAS_CALLBACK_DEL, _elm_win_focus_prev_target_del, data); + elm_widget_signal_emit + (previous, "elm,action,focus_highlight,hide", "elm"); + } if (!target) common_visible = EINA_FALSE; @@ -891,6 +905,9 @@ the_end: _elm_win_focus_highlight_visible_set(sd, common_visible); sd->focus_highlight.geometry_changed = EINA_FALSE; sd->focus_highlight.prev = sd->focus_highlight.cur; + evas_object_event_callback_add + (sd->focus_highlight.prev.target, + EVAS_CALLBACK_DEL, _elm_win_focus_prev_target_del, data); } static void |