aboutsummaryrefslogtreecommitdiffstats
path: root/legacy/elementary/src/lib/elm_win.c
diff options
context:
space:
mode:
authorJaehwan Kim <jae.hwan.kim@samsung.com>2015-08-05 14:46:01 +0900
committerJaehwan Kim <jae.hwan.kim@samsung.com>2015-08-05 14:48:20 +0900
commitaee3de2306bb7e6785002bec2ca5c27d087e50cf (patch)
tree340bffce2d9e2d5d9ed8a1a64070876f29c86574 /legacy/elementary/src/lib/elm_win.c
parentpopup: fix resize issue in case of custom part text set (diff)
downloadefl-aee3de2306bb7e6785002bec2ca5c27d087e50cf.tar.gz
focus: add del callback always.
When the window treats focused object, it should always check that it is deleted. @fix
Diffstat (limited to 'legacy/elementary/src/lib/elm_win.c')
-rw-r--r--legacy/elementary/src/lib/elm_win.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c
index 9c0b3158ce..5c0d80755b 100644
--- a/legacy/elementary/src/lib/elm_win.c
+++ b/legacy/elementary/src/lib/elm_win.c
@@ -1691,8 +1691,6 @@ _elm_win_focus_target_callbacks_add(Elm_Win_Data *sd)
(obj, EVAS_CALLBACK_MOVE, _elm_win_focus_target_move, sd->obj);
evas_object_event_callback_add
(obj, EVAS_CALLBACK_RESIZE, _elm_win_focus_target_resize, sd->obj);
- evas_object_event_callback_add
- (obj, EVAS_CALLBACK_DEL, _elm_win_focus_target_del, sd->obj);
}
static void
@@ -1704,8 +1702,6 @@ _elm_win_focus_target_callbacks_del(Elm_Win_Data *sd)
(obj, EVAS_CALLBACK_MOVE, _elm_win_focus_target_move, sd->obj);
evas_object_event_callback_del_full
(obj, EVAS_CALLBACK_RESIZE, _elm_win_focus_target_resize, sd->obj);
- evas_object_event_callback_del_full
- (obj, EVAS_CALLBACK_DEL, _elm_win_focus_target_del, sd->obj);
}
static void
@@ -1726,6 +1722,9 @@ _elm_win_object_focus_in(void *data,
else
_elm_win_focus_target_callbacks_add(sd);
+ evas_object_event_callback_add
+ (target, EVAS_CALLBACK_DEL, _elm_win_focus_target_del, sd->obj);
+
_elm_win_focus_highlight_reconfigure_job_start(sd);
}
@@ -1742,6 +1741,10 @@ _elm_win_object_focus_out(void *data,
if (!sd->focus_highlight.cur.in_theme)
_elm_win_focus_target_callbacks_del(sd);
+ evas_object_event_callback_del_full
+ (sd->focus_highlight.cur.target,
+ EVAS_CALLBACK_DEL, _elm_win_focus_target_del, sd->obj);
+
sd->focus_highlight.cur.target = NULL;
sd->focus_highlight.cur.in_theme = EINA_FALSE;
@@ -1757,6 +1760,9 @@ _elm_win_focus_highlight_shutdown(Elm_Win_Data *sd)
elm_widget_signal_emit(sd->focus_highlight.cur.target,
"elm,action,focus_highlight,hide", "elm");
_elm_win_focus_target_callbacks_del(sd);
+ evas_object_event_callback_del_full
+ (sd->focus_highlight.cur.target,
+ EVAS_CALLBACK_DEL, _elm_win_focus_target_del, sd->obj);
sd->focus_highlight.cur.target = NULL;
}
ELM_SAFE_FREE(sd->focus_highlight.fobj, evas_object_del);
@@ -2562,6 +2568,10 @@ _elm_win_focus_highlight_init(Elm_Win_Data *sd)
sd->focus_highlight.cur.in_theme = EINA_TRUE;
else
_elm_win_focus_target_callbacks_add(sd);
+
+ evas_object_event_callback_add
+ (sd->focus_highlight.cur.target,
+ EVAS_CALLBACK_DEL, _elm_win_focus_target_del, sd->obj);
}
sd->focus_highlight.prev.target = NULL;