summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWooHyun Jung <wh0705.jung@samsung.com>2014-05-23 11:07:59 +0900
committerWooHyun Jung <wh0705.jung@samsung.com>2014-05-23 11:07:59 +0900
commit44ea0a16efa6012a66be6215cff364cf59a81edc (patch)
tree07f78facfec94e30c3ad3aa37fc715646d9dcd3c
parent497cc15ac2e42e3ba7b100fdbf3987fd91476d8b (diff)
win: set NULL to focus_highlight.prev.target when it's deleted.
-rw-r--r--src/lib/elm_win.c21
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,
806} 806}
807 807
808static void 808static void
809_elm_win_focus_prev_target_del(void *data,
810 Evas *e EINA_UNUSED,
811 Evas_Object *obj EINA_UNUSED,
812 void *event_info EINA_UNUSED)
813{
814 ELM_WIN_DATA_GET(data, sd);
815 sd->focus_highlight.prev.target = NULL;
816}
817
818static void
809_elm_win_focus_highlight_reconfigure_job(void *data) 819_elm_win_focus_highlight_reconfigure_job(void *data)
810{ 820{
811 ELM_WIN_DATA_GET(data, sd); 821 ELM_WIN_DATA_GET(data, sd);
@@ -829,8 +839,12 @@ _elm_win_focus_highlight_reconfigure_job(void *data)
829 return; 839 return;
830 840
831 if ((previous) && (sd->focus_highlight.prev.in_theme)) 841 if ((previous) && (sd->focus_highlight.prev.in_theme))
832 elm_widget_signal_emit 842 {
833 (previous, "elm,action,focus_highlight,hide", "elm"); 843 evas_object_event_callback_del_full
844 (previous, EVAS_CALLBACK_DEL, _elm_win_focus_prev_target_del, data);
845 elm_widget_signal_emit
846 (previous, "elm,action,focus_highlight,hide", "elm");
847 }
834 848
835 if (!target) 849 if (!target)
836 common_visible = EINA_FALSE; 850 common_visible = EINA_FALSE;
@@ -891,6 +905,9 @@ the_end:
891 _elm_win_focus_highlight_visible_set(sd, common_visible); 905 _elm_win_focus_highlight_visible_set(sd, common_visible);
892 sd->focus_highlight.geometry_changed = EINA_FALSE; 906 sd->focus_highlight.geometry_changed = EINA_FALSE;
893 sd->focus_highlight.prev = sd->focus_highlight.cur; 907 sd->focus_highlight.prev = sd->focus_highlight.cur;
908 evas_object_event_callback_add
909 (sd->focus_highlight.prev.target,
910 EVAS_CALLBACK_DEL, _elm_win_focus_prev_target_del, data);
894} 911}
895 912
896static void 913static void