summaryrefslogtreecommitdiff
path: root/legacy
diff options
context:
space:
mode:
authorDaniel Juyung Seo <seojuyung2@gmail.com>2011-10-31 00:13:32 +0000
committerDaniel Juyung Seo <seojuyung2@gmail.com>2011-10-31 00:13:32 +0000
commitbafe9c7426f2773c8415bc9ce990798ef7ffba4a (patch)
tree2844595f911df1b3d598947186060071ac0d68bd /legacy
parent771202d8f8a615b176398082b485ec1ad4ab3d79 (diff)
elm: Use appropriate add/del_full for evas event callbacks.
SVN revision: 64536
Diffstat (limited to 'legacy')
-rw-r--r--legacy/elementary/TODO3
-rw-r--r--legacy/elementary/src/lib/elc_fileselector_button.c15
-rw-r--r--legacy/elementary/src/lib/elc_fileselector_entry.c14
-rw-r--r--legacy/elementary/src/lib/elc_hoversel.c2
-rw-r--r--legacy/elementary/src/lib/elm_bubble.c4
-rw-r--r--legacy/elementary/src/lib/elm_button.c2
-rw-r--r--legacy/elementary/src/lib/elm_check.c3
-rw-r--r--legacy/elementary/src/lib/elm_conform.c3
-rw-r--r--legacy/elementary/src/lib/elm_flip.c6
-rw-r--r--legacy/elementary/src/lib/elm_frame.c3
-rw-r--r--legacy/elementary/src/lib/elm_layout.c3
-rw-r--r--legacy/elementary/src/lib/elm_map.c2
-rw-r--r--legacy/elementary/src/lib/elm_mapbuf.c3
-rw-r--r--legacy/elementary/src/lib/elm_notify.c5
-rw-r--r--legacy/elementary/src/lib/elm_progressbar.c2
-rw-r--r--legacy/elementary/src/lib/elm_radio.c2
-rw-r--r--legacy/elementary/src/lib/elm_scroller.c3
-rw-r--r--legacy/elementary/src/lib/elm_slider.c6
-rw-r--r--legacy/elementary/src/lib/elm_slideshow.c11
-rw-r--r--legacy/elementary/src/lib/elm_win.c3
20 files changed, 94 insertions, 1 deletions
diff --git a/legacy/elementary/TODO b/legacy/elementary/TODO
index 37adb5f584..11d1c997ac 100644
--- a/legacy/elementary/TODO
+++ b/legacy/elementary/TODO
@@ -9,3 +9,6 @@ Things That Just Need To Be Rewritten (tm):
9 9
10"Features" 10"Features"
11 elm_object_icon_s/get() should be implemented for most widgets to reduce api 11 elm_object_icon_s/get() should be implemented for most widgets to reduce api
12
13callbacks add/del
14 pager, panes
diff --git a/legacy/elementary/src/lib/elc_fileselector_button.c b/legacy/elementary/src/lib/elc_fileselector_button.c
index c5197f6739..d104736108 100644
--- a/legacy/elementary/src/lib/elc_fileselector_button.c
+++ b/legacy/elementary/src/lib/elc_fileselector_button.c
@@ -22,6 +22,7 @@ struct _Widget_Data
22 22
23static const char *widtype = NULL; 23static const char *widtype = NULL;
24 24
25static void _del_pre_hook(Evas_Object *obj);
25static void _del_hook(Evas_Object *obj); 26static void _del_hook(Evas_Object *obj);
26static void _theme_hook(Evas_Object *obj); 27static void _theme_hook(Evas_Object *obj);
27static void _disable_hook(Evas_Object *obj); 28static void _disable_hook(Evas_Object *obj);
@@ -30,6 +31,9 @@ static void _changed_size_hints(void *data,
30 Evas *e, 31 Evas *e,
31 Evas_Object *obj, 32 Evas_Object *obj,
32 void *event_info); 33 void *event_info);
34static void _button_clicked(void *data,
35 Evas_Object *obj,
36 void *event_info);
33static void _on_focus_hook(void *data, 37static void _on_focus_hook(void *data,
34 Evas_Object *obj); 38 Evas_Object *obj);
35static void _selection_done(void *data, 39static void _selection_done(void *data,
@@ -44,6 +48,16 @@ static const Evas_Smart_Cb_Description _signals[] = {
44}; 48};
45 49
46static void 50static void
51_del_pre_hook(Evas_Object *obj)
52{
53 Widget_Data *wd = elm_widget_data_get(obj);
54 if (!wd) return;
55 evas_object_event_callback_del_full(wd->btn, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
56 _changed_size_hints, obj);
57 evas_object_smart_callback_del(wd->btn, "clicked", _button_clicked);
58}
59
60static void
47_del_hook(Evas_Object *obj) 61_del_hook(Evas_Object *obj)
48{ 62{
49 Evas_Object *win; 63 Evas_Object *win;
@@ -274,6 +288,7 @@ elm_fileselector_button_add(Evas_Object *parent)
274 elm_widget_sub_object_add(parent, obj); 288 elm_widget_sub_object_add(parent, obj);
275 elm_widget_on_focus_hook_set(obj, _on_focus_hook, NULL); 289 elm_widget_on_focus_hook_set(obj, _on_focus_hook, NULL);
276 elm_widget_data_set(obj, wd); 290 elm_widget_data_set(obj, wd);
291 elm_widget_del_pre_hook_set(obj, _del_pre_hook);
277 elm_widget_del_hook_set(obj, _del_hook); 292 elm_widget_del_hook_set(obj, _del_hook);
278 elm_widget_theme_hook_set(obj, _theme_hook); 293 elm_widget_theme_hook_set(obj, _theme_hook);
279 elm_widget_disable_hook_set(obj, _disable_hook); 294 elm_widget_disable_hook_set(obj, _disable_hook);
diff --git a/legacy/elementary/src/lib/elc_fileselector_entry.c b/legacy/elementary/src/lib/elc_fileselector_entry.c
index 653ee490c3..bad2cafd58 100644
--- a/legacy/elementary/src/lib/elc_fileselector_entry.c
+++ b/legacy/elementary/src/lib/elc_fileselector_entry.c
@@ -62,6 +62,8 @@ SIG_FWD(SELECTION_CUT)
62SIG_FWD(UNPRESSED) 62SIG_FWD(UNPRESSED)
63#undef SIG_FWD 63#undef SIG_FWD
64 64
65static void _del_pre_hook(Evas_Object *obj);
66static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info);
65static void _mirrored_set(Evas_Object *obj, Eina_Bool rtl); 67static void _mirrored_set(Evas_Object *obj, Eina_Bool rtl);
66 68
67static void 69static void
@@ -83,6 +85,17 @@ _ACTIVATED_fwd(void *data, Evas_Object *obj __UNUSED__, void *event_info)
83} 85}
84 86
85static void 87static void
88_del_pre_hook(Evas_Object *obj)
89{
90 Widget_Data *wd = elm_widget_data_get(obj);
91 if (!wd) return;
92 evas_object_event_callback_del_full
93 (wd->button, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj);
94 evas_object_event_callback_del_full
95 (wd->entry, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj);
96}
97
98static void
86_del_hook(Evas_Object *obj) 99_del_hook(Evas_Object *obj)
87{ 100{
88 Widget_Data *wd = elm_widget_data_get(obj); 101 Widget_Data *wd = elm_widget_data_get(obj);
@@ -233,6 +246,7 @@ elm_fileselector_entry_add(Evas_Object *parent)
233 elm_widget_type_set(obj, "fileselector_entry"); 246 elm_widget_type_set(obj, "fileselector_entry");
234 elm_widget_sub_object_add(parent, obj); 247 elm_widget_sub_object_add(parent, obj);
235 elm_widget_data_set(obj, wd); 248 elm_widget_data_set(obj, wd);
249 elm_widget_del_pre_hook_set(obj, _del_pre_hook);
236 elm_widget_del_hook_set(obj, _del_hook); 250 elm_widget_del_hook_set(obj, _del_hook);
237 elm_widget_disable_hook_set(obj, _disable_hook); 251 elm_widget_disable_hook_set(obj, _disable_hook);
238 elm_widget_focus_next_hook_set(obj, _elm_fileselector_entry_focus_next_hook); 252 elm_widget_focus_next_hook_set(obj, _elm_fileselector_entry_focus_next_hook);
diff --git a/legacy/elementary/src/lib/elc_hoversel.c b/legacy/elementary/src/lib/elc_hoversel.c
index e0b983c10a..6cb93e2ca0 100644
--- a/legacy/elementary/src/lib/elc_hoversel.c
+++ b/legacy/elementary/src/lib/elc_hoversel.c
@@ -49,6 +49,8 @@ _del_pre_hook(Evas_Object *obj)
49 Elm_Hoversel_Item *item; 49 Elm_Hoversel_Item *item;
50 Widget_Data *wd = elm_widget_data_get(obj); 50 Widget_Data *wd = elm_widget_data_get(obj);
51 if (!wd) return; 51 if (!wd) return;
52 evas_object_event_callback_del_full(wd->btn, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
53 _changed_size_hints, obj);
52 elm_hoversel_hover_end(obj); 54 elm_hoversel_hover_end(obj);
53 elm_hoversel_hover_parent_set(obj, NULL); 55 elm_hoversel_hover_parent_set(obj, NULL);
54 EINA_LIST_FREE(wd->items, item) 56 EINA_LIST_FREE(wd->items, item)
diff --git a/legacy/elementary/src/lib/elm_bubble.c b/legacy/elementary/src/lib/elm_bubble.c
index 5c8c5d9ab1..1dfdceba24 100644
--- a/legacy/elementary/src/lib/elm_bubble.c
+++ b/legacy/elementary/src/lib/elm_bubble.c
@@ -281,6 +281,8 @@ elm_bubble_content_unset(Evas_Object *obj)
281 if (!wd->content) return NULL; 281 if (!wd->content) return NULL;
282 content = wd->content; 282 content = wd->content;
283 elm_widget_sub_object_del(obj, content); 283 elm_widget_sub_object_del(obj, content);
284 evas_object_event_callback_del_full(content, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
285 _changed_size_hints, obj);
284 edje_object_part_unswallow(wd->bbl, content); 286 edje_object_part_unswallow(wd->bbl, content);
285 wd->content = NULL; 287 wd->content = NULL;
286 return content; 288 return content;
@@ -326,6 +328,8 @@ elm_bubble_icon_unset(Evas_Object *obj)
326 if (!wd->icon) return NULL; 328 if (!wd->icon) return NULL;
327 icon = wd->icon; 329 icon = wd->icon;
328 elm_widget_sub_object_del(obj, icon); 330 elm_widget_sub_object_del(obj, icon);
331 evas_object_event_callback_del_full(icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
332 _changed_size_hints, obj);
329 edje_object_part_unswallow(wd->bbl, icon); 333 edje_object_part_unswallow(wd->bbl, icon);
330 wd->icon = NULL; 334 wd->icon = NULL;
331 return icon; 335 return icon;
diff --git a/legacy/elementary/src/lib/elm_button.c b/legacy/elementary/src/lib/elm_button.c
index cafc17e91f..7e2ff28a62 100644
--- a/legacy/elementary/src/lib/elm_button.c
+++ b/legacy/elementary/src/lib/elm_button.c
@@ -215,6 +215,8 @@ _content_unset_hook(Evas_Object *obj, const char *part __UNUSED__)
215 if (!wd->icon) return NULL; 215 if (!wd->icon) return NULL;
216 Evas_Object *icon = wd->icon; 216 Evas_Object *icon = wd->icon;
217 elm_widget_sub_object_del(obj, wd->icon); 217 elm_widget_sub_object_del(obj, wd->icon);
218 evas_object_event_callback_del_full(wd->icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
219 _changed_size_hints, obj);
218 edje_object_part_unswallow(wd->btn, wd->icon); 220 edje_object_part_unswallow(wd->btn, wd->icon);
219 wd->icon = NULL; 221 wd->icon = NULL;
220 return icon; 222 return icon;
diff --git a/legacy/elementary/src/lib/elm_check.c b/legacy/elementary/src/lib/elm_check.c
index 7038c71f88..c4e57c8760 100644
--- a/legacy/elementary/src/lib/elm_check.c
+++ b/legacy/elementary/src/lib/elm_check.c
@@ -246,6 +246,9 @@ _content_unset_hook(Evas_Object *obj, const char *part __UNUSED__)
246 if (!wd->icon) return NULL; 246 if (!wd->icon) return NULL;
247 Evas_Object *icon = wd->icon; 247 Evas_Object *icon = wd->icon;
248 elm_widget_sub_object_del(obj, wd->icon); 248 elm_widget_sub_object_del(obj, wd->icon);
249 evas_object_event_callback_del_full(wd->icon,
250 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
251 _changed_size_hints, obj);
249 edje_object_part_unswallow(wd->chk, wd->icon); 252 edje_object_part_unswallow(wd->chk, wd->icon);
250 wd->icon = NULL; 253 wd->icon = NULL;
251 return icon; 254 return icon;
diff --git a/legacy/elementary/src/lib/elm_conform.c b/legacy/elementary/src/lib/elm_conform.c
index 620b79ed4f..1ccacac6fa 100644
--- a/legacy/elementary/src/lib/elm_conform.c
+++ b/legacy/elementary/src/lib/elm_conform.c
@@ -160,6 +160,9 @@ _content_unset_hook(Evas_Object *obj, const char *part __UNUSED__)
160 if ((!wd) || (!wd->content)) return NULL; 160 if ((!wd) || (!wd->content)) return NULL;
161 content = wd->content; 161 content = wd->content;
162 elm_widget_sub_object_del(obj, wd->content); 162 elm_widget_sub_object_del(obj, wd->content);
163 evas_object_event_callback_del_full(wd->content,
164 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
165 _changed_size_hints, obj);
163 edje_object_part_unswallow(wd->base, wd->content); 166 edje_object_part_unswallow(wd->base, wd->content);
164 wd->content = NULL; 167 wd->content = NULL;
165 return content; 168 return content;
diff --git a/legacy/elementary/src/lib/elm_flip.c b/legacy/elementary/src/lib/elm_flip.c
index e311b7d316..2f3d5cb830 100644
--- a/legacy/elementary/src/lib/elm_flip.c
+++ b/legacy/elementary/src/lib/elm_flip.c
@@ -1721,6 +1721,9 @@ elm_flip_content_front_unset(Evas_Object *obj)
1721 Evas_Object *content = wd->front.content; 1721 Evas_Object *content = wd->front.content;
1722 evas_object_clip_unset(content); 1722 evas_object_clip_unset(content);
1723 elm_widget_sub_object_del(obj, content); 1723 elm_widget_sub_object_del(obj, content);
1724 evas_object_event_callback_del_full(content,
1725 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
1726 _changed_size_hints, obj);
1724 evas_object_smart_member_del(content); 1727 evas_object_smart_member_del(content);
1725 wd->front.content = NULL; 1728 wd->front.content = NULL;
1726 return content; 1729 return content;
@@ -1736,6 +1739,9 @@ elm_flip_content_back_unset(Evas_Object *obj)
1736 Evas_Object *content = wd->back.content; 1739 Evas_Object *content = wd->back.content;
1737 evas_object_clip_unset(content); 1740 evas_object_clip_unset(content);
1738 elm_widget_sub_object_del(obj, content); 1741 elm_widget_sub_object_del(obj, content);
1742 evas_object_event_callback_del_full(content,
1743 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
1744 _changed_size_hints, obj);
1739 evas_object_smart_member_del(content); 1745 evas_object_smart_member_del(content);
1740 wd->back.content = NULL; 1746 wd->back.content = NULL;
1741 return content; 1747 return content;
diff --git a/legacy/elementary/src/lib/elm_frame.c b/legacy/elementary/src/lib/elm_frame.c
index fb1019c354..7dae02bc40 100644
--- a/legacy/elementary/src/lib/elm_frame.c
+++ b/legacy/elementary/src/lib/elm_frame.c
@@ -162,6 +162,9 @@ _content_unset_hook(Evas_Object *obj, const char *part __UNUSED__)
162 if (!wd->content) return NULL; 162 if (!wd->content) return NULL;
163 content = wd->content; 163 content = wd->content;
164 elm_widget_sub_object_del(obj, wd->content); 164 elm_widget_sub_object_del(obj, wd->content);
165 evas_object_event_callback_del_full(wd->content,
166 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
167 _changed_size_hints, obj);
165 edje_object_part_unswallow(wd->frm, wd->content); 168 edje_object_part_unswallow(wd->frm, wd->content);
166 wd->content = NULL; 169 wd->content = NULL;
167 return content; 170 return content;
diff --git a/legacy/elementary/src/lib/elm_layout.c b/legacy/elementary/src/lib/elm_layout.c
index 461f9764d9..333827052b 100644
--- a/legacy/elementary/src/lib/elm_layout.c
+++ b/legacy/elementary/src/lib/elm_layout.c
@@ -424,6 +424,9 @@ _content_unset_hook(Evas_Object *obj, const char *part)
424 if (!si->obj) return NULL; 424 if (!si->obj) return NULL;
425 content = si->obj; /* si will die in _sub_del due elm_widget_sub_object_del() */ 425 content = si->obj; /* si will die in _sub_del due elm_widget_sub_object_del() */
426 elm_widget_sub_object_del(obj, content); 426 elm_widget_sub_object_del(obj, content);
427 evas_object_event_callback_del_full(content,
428 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
429 _changed_size_hints, wd);
427 edje_object_part_unswallow(wd->lay, content); 430 edje_object_part_unswallow(wd->lay, content);
428 return content; 431 return content;
429 } 432 }
diff --git a/legacy/elementary/src/lib/elm_map.c b/legacy/elementary/src/lib/elm_map.c
index 0d2d40c53d..7142d514c3 100644
--- a/legacy/elementary/src/lib/elm_map.c
+++ b/legacy/elementary/src/lib/elm_map.c
@@ -2556,7 +2556,7 @@ _group_bubble_content_update(Marker_Group *group)
2556 2556
2557 elm_scroller_content_set(group->sc, group->bx); 2557 elm_scroller_content_set(group->sc, group->bx);
2558 2558
2559 evas_object_event_callback_add(group->sc, EVAS_CALLBACK_RESIZE, 2559 evas_object_event_callback_add(group->sc, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
2560 _bubble_sc_hits_changed_cb, group); 2560 _bubble_sc_hits_changed_cb, group);
2561 } 2561 }
2562 2562
diff --git a/legacy/elementary/src/lib/elm_mapbuf.c b/legacy/elementary/src/lib/elm_mapbuf.c
index ab6f152cfd..9e012494d3 100644
--- a/legacy/elementary/src/lib/elm_mapbuf.c
+++ b/legacy/elementary/src/lib/elm_mapbuf.c
@@ -191,6 +191,9 @@ _content_unset_hook(Evas_Object *obj, const char *part __UNUSED__)
191 if (!wd->content) return NULL; 191 if (!wd->content) return NULL;
192 content = wd->content; 192 content = wd->content;
193 elm_widget_sub_object_del(obj, content); 193 elm_widget_sub_object_del(obj, content);
194 evas_object_event_callback_add(content,
195 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
196 _changed_size_hints, obj);
194 evas_object_smart_member_del(content); 197 evas_object_smart_member_del(content);
195 evas_object_color_set(wd->clip, 0, 0, 0, 0); 198 evas_object_color_set(wd->clip, 0, 0, 0, 0);
196 evas_object_clip_unset(content); 199 evas_object_clip_unset(content);
diff --git a/legacy/elementary/src/lib/elm_notify.c b/legacy/elementary/src/lib/elm_notify.c
index 116d475a21..3b2de35eab 100644
--- a/legacy/elementary/src/lib/elm_notify.c
+++ b/legacy/elementary/src/lib/elm_notify.c
@@ -456,6 +456,11 @@ _content_unset_hook(Evas_Object *obj, const char *part __UNUSED__)
456 if (!wd->content) return NULL; 456 if (!wd->content) return NULL;
457 content = wd->content; 457 content = wd->content;
458 elm_widget_sub_object_del(obj, wd->content); 458 elm_widget_sub_object_del(obj, wd->content);
459 evas_object_event_callback_del_full(wd->content,
460 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
461 _changed_size_hints, obj);
462 evas_object_event_callback_del_full(wd->content, EVAS_CALLBACK_RESIZE,
463 _content_resize, obj);
459 edje_object_part_unswallow(wd->notify, wd->content); 464 edje_object_part_unswallow(wd->notify, wd->content);
460 wd->content = NULL; 465 wd->content = NULL;
461 return content; 466 return content;
diff --git a/legacy/elementary/src/lib/elm_progressbar.c b/legacy/elementary/src/lib/elm_progressbar.c
index 3ee3b0c54e..e6016629e2 100644
--- a/legacy/elementary/src/lib/elm_progressbar.c
+++ b/legacy/elementary/src/lib/elm_progressbar.c
@@ -351,6 +351,8 @@ elm_progressbar_icon_unset(Evas_Object *obj)
351 if (!wd->icon) return NULL; 351 if (!wd->icon) return NULL;
352 Evas_Object *icon = wd->icon; 352 Evas_Object *icon = wd->icon;
353 elm_widget_sub_object_del(obj, wd->icon); 353 elm_widget_sub_object_del(obj, wd->icon);
354 evas_object_event_callback_del_full(wd->icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
355 _changed_size_hints, obj);
354 edje_object_part_unswallow(wd->progressbar, wd->icon); 356 edje_object_part_unswallow(wd->progressbar, wd->icon);
355 wd->icon = NULL; 357 wd->icon = NULL;
356 return icon; 358 return icon;
diff --git a/legacy/elementary/src/lib/elm_radio.c b/legacy/elementary/src/lib/elm_radio.c
index 99f1ab3f81..83e2e746f8 100644
--- a/legacy/elementary/src/lib/elm_radio.c
+++ b/legacy/elementary/src/lib/elm_radio.c
@@ -402,6 +402,8 @@ elm_radio_icon_unset(Evas_Object *obj)
402 if (!wd->icon) return NULL; 402 if (!wd->icon) return NULL;
403 Evas_Object *icon = wd->icon; 403 Evas_Object *icon = wd->icon;
404 elm_widget_sub_object_del(obj, wd->icon); 404 elm_widget_sub_object_del(obj, wd->icon);
405 evas_object_event_callback_del_full(wd->icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
406 _changed_size_hints, obj);
405 edje_object_part_unswallow(wd->radio, wd->icon); 407 edje_object_part_unswallow(wd->radio, wd->icon);
406 wd->icon = NULL; 408 wd->icon = NULL;
407 return icon; 409 return icon;
diff --git a/legacy/elementary/src/lib/elm_scroller.c b/legacy/elementary/src/lib/elm_scroller.c
index d4487c470b..8392e96607 100644
--- a/legacy/elementary/src/lib/elm_scroller.c
+++ b/legacy/elementary/src/lib/elm_scroller.c
@@ -526,6 +526,9 @@ elm_scroller_content_unset(Evas_Object *obj)
526 if (!wd->content) return NULL; 526 if (!wd->content) return NULL;
527 content = wd->content; 527 content = wd->content;
528 elm_widget_sub_object_del(obj, wd->content); 528 elm_widget_sub_object_del(obj, wd->content);
529 evas_object_event_callback_del_full(wd->content,
530 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
531 _changed_size_hints, obj);
529 edje_object_part_unswallow(elm_smart_scroller_edje_object_get(wd->scr), wd->content); 532 edje_object_part_unswallow(elm_smart_scroller_edje_object_get(wd->scr), wd->content);
530 wd->content = NULL; 533 wd->content = NULL;
531 return content; 534 return content;
diff --git a/legacy/elementary/src/lib/elm_slider.c b/legacy/elementary/src/lib/elm_slider.c
index 044ce93d48..cc634ca0ea 100644
--- a/legacy/elementary/src/lib/elm_slider.c
+++ b/legacy/elementary/src/lib/elm_slider.c
@@ -593,6 +593,9 @@ elm_slider_icon_unset(Evas_Object *obj)
593 if (wd->icon) 593 if (wd->icon)
594 { 594 {
595 elm_widget_sub_object_del(obj, wd->icon); 595 elm_widget_sub_object_del(obj, wd->icon);
596 evas_object_event_callback_del_full(wd->icon,
597 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
598 _changed_size_hints, obj);
596 ret = wd->icon; 599 ret = wd->icon;
597 edje_object_part_unswallow(wd->slider, wd->icon); 600 edje_object_part_unswallow(wd->slider, wd->icon);
598 edje_object_signal_emit(wd->slider, "elm,state,icon,hidden", "elm"); 601 edje_object_signal_emit(wd->slider, "elm,state,icon,hidden", "elm");
@@ -843,6 +846,9 @@ elm_slider_end_unset(Evas_Object *obj)
843 if (wd->end) 846 if (wd->end)
844 { 847 {
845 elm_widget_sub_object_del(obj, wd->end); 848 elm_widget_sub_object_del(obj, wd->end);
849 evas_object_event_callback_del_full(wd->end,
850 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
851 _changed_size_hints, obj);
846 ret = wd->end; 852 ret = wd->end;
847 edje_object_part_unswallow(wd->slider, wd->end); 853 edje_object_part_unswallow(wd->slider, wd->end);
848 edje_object_signal_emit(wd->slider, "elm,state,end,hidden", "elm"); 854 edje_object_signal_emit(wd->slider, "elm,state,end,hidden", "elm");
diff --git a/legacy/elementary/src/lib/elm_slideshow.c b/legacy/elementary/src/lib/elm_slideshow.c
index 69690c2817..71876d6945 100644
--- a/legacy/elementary/src/lib/elm_slideshow.c
+++ b/legacy/elementary/src/lib/elm_slideshow.c
@@ -39,6 +39,7 @@ struct _Widget_Data
39}; 39};
40 40
41static const char *widtype = NULL; 41static const char *widtype = NULL;
42static void _del_pre_hook(Evas_Object *obj);
42static void _del_hook(Evas_Object *obj); 43static void _del_hook(Evas_Object *obj);
43static void _mirrored_set(Evas_Object *obj, Eina_Bool rtl); 44static void _mirrored_set(Evas_Object *obj, Eina_Bool rtl);
44static void _theme_hook(Evas_Object *obj); 45static void _theme_hook(Evas_Object *obj);
@@ -98,6 +99,15 @@ _event_hook(Evas_Object *obj, Evas_Object *src __UNUSED__, Evas_Callback_Type ty
98} 99}
99 100
100static void 101static void
102_del_pre_hook(Evas_Object *obj)
103{
104 Widget_Data *wd = elm_widget_data_get(obj);
105 if (!wd) return;
106 evas_object_event_callback_del_full(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
107 _changed_size_hints, obj);
108}
109
110static void
101_del_hook(Evas_Object *obj) 111_del_hook(Evas_Object *obj)
102{ 112{
103 const char *layout; 113 const char *layout;
@@ -346,6 +356,7 @@ elm_slideshow_add(Evas_Object *parent)
346 elm_widget_sub_object_add(parent, obj); 356 elm_widget_sub_object_add(parent, obj);
347 elm_widget_on_focus_hook_set(obj, _on_focus_hook, NULL); 357 elm_widget_on_focus_hook_set(obj, _on_focus_hook, NULL);
348 elm_widget_data_set(obj, wd); 358 elm_widget_data_set(obj, wd);
359 elm_widget_del_pre_hook_set(obj, _del_pre_hook);
349 elm_widget_del_hook_set(obj, _del_hook); 360 elm_widget_del_hook_set(obj, _del_hook);
350 elm_widget_theme_hook_set(obj, _theme_hook); 361 elm_widget_theme_hook_set(obj, _theme_hook);
351 elm_widget_can_focus_set(obj, EINA_TRUE); 362 elm_widget_can_focus_set(obj, EINA_TRUE);
diff --git a/legacy/elementary/src/lib/elm_win.c b/legacy/elementary/src/lib/elm_win.c
index 2d3237b6ff..62f9392f8c 100644
--- a/legacy/elementary/src/lib/elm_win.c
+++ b/legacy/elementary/src/lib/elm_win.c
@@ -2612,6 +2612,9 @@ elm_win_inwin_content_unset(Evas_Object *obj)
2612 if (!wd->content) return NULL; 2612 if (!wd->content) return NULL;
2613 Evas_Object *content = wd->content; 2613 Evas_Object *content = wd->content;
2614 elm_widget_sub_object_del(obj, wd->content); 2614 elm_widget_sub_object_del(obj, wd->content);
2615 evas_object_event_callback_del_full(wd->content,
2616 EVAS_CALLBACK_CHANGED_SIZE_HINTS,
2617 _changed_size_hints, obj);
2615 edje_object_part_unswallow(wd->frm, wd->content); 2618 edje_object_part_unswallow(wd->frm, wd->content);
2616 wd->content = NULL; 2619 wd->content = NULL;
2617 return content; 2620 return content;