forked from enlightenment/efl
elementary: fix tooltip segfaults with gengrid (cedric thanks)
SVN revision: 60347
This commit is contained in:
parent
fdb1fbb8a9
commit
35c22c2d63
|
@ -424,7 +424,7 @@ _elm_tooltip_obj_mouse_out_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj
|
||||||
_elm_tooltip_hide_anim_start(tt);
|
_elm_tooltip_hide_anim_start(tt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _elm_tooltip_obj_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__);
|
static void _elm_tooltip_obj_free_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elm_tooltip_unset(Elm_Tooltip *tt)
|
_elm_tooltip_unset(Elm_Tooltip *tt)
|
||||||
|
@ -442,14 +442,14 @@ _elm_tooltip_unset(Elm_Tooltip *tt)
|
||||||
(tt->eventarea, EVAS_CALLBACK_MOUSE_OUT,
|
(tt->eventarea, EVAS_CALLBACK_MOUSE_OUT,
|
||||||
_elm_tooltip_obj_mouse_out_cb, tt);
|
_elm_tooltip_obj_mouse_out_cb, tt);
|
||||||
evas_object_event_callback_del_full
|
evas_object_event_callback_del_full
|
||||||
(tt->eventarea, EVAS_CALLBACK_DEL, _elm_tooltip_obj_del_cb, tt);
|
(tt->eventarea, EVAS_CALLBACK_FREE, _elm_tooltip_obj_free_cb, tt);
|
||||||
|
|
||||||
evas_object_data_del(tt->eventarea, _tooltip_key);
|
evas_object_data_del(tt->eventarea, _tooltip_key);
|
||||||
}
|
}
|
||||||
if (tt->owner)
|
if (tt->owner)
|
||||||
{
|
{
|
||||||
evas_object_event_callback_del_full
|
evas_object_event_callback_del_full
|
||||||
(tt->owner, EVAS_CALLBACK_DEL, _elm_tooltip_obj_del_cb, tt);
|
(tt->owner, EVAS_CALLBACK_FREE, _elm_tooltip_obj_free_cb, tt);
|
||||||
elm_widget_tooltip_del(tt->owner, tt);
|
elm_widget_tooltip_del(tt->owner, tt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -458,7 +458,7 @@ _elm_tooltip_unset(Elm_Tooltip *tt)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elm_tooltip_obj_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
_elm_tooltip_obj_free_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||||
{
|
{
|
||||||
Elm_Tooltip *tt = data;
|
Elm_Tooltip *tt = data;
|
||||||
if (tt->eventarea == obj) tt->eventarea = NULL;
|
if (tt->eventarea == obj) tt->eventarea = NULL;
|
||||||
|
@ -561,13 +561,13 @@ elm_object_sub_tooltip_content_cb_set(Evas_Object *eventarea, Evas_Object *owner
|
||||||
{
|
{
|
||||||
if (tt->owner != eventarea)
|
if (tt->owner != eventarea)
|
||||||
evas_object_event_callback_del_full
|
evas_object_event_callback_del_full
|
||||||
(tt->owner, EVAS_CALLBACK_DEL, _elm_tooltip_obj_del_cb, tt);
|
(tt->owner, EVAS_CALLBACK_FREE, _elm_tooltip_obj_free_cb, tt);
|
||||||
|
|
||||||
elm_widget_tooltip_del(tt->owner, tt);
|
elm_widget_tooltip_del(tt->owner, tt);
|
||||||
|
|
||||||
if (owner != eventarea)
|
if (owner != eventarea)
|
||||||
evas_object_event_callback_add
|
evas_object_event_callback_add
|
||||||
(owner, EVAS_CALLBACK_DEL, _elm_tooltip_obj_del_cb, tt);
|
(owner, EVAS_CALLBACK_FREE, _elm_tooltip_obj_free_cb, tt);
|
||||||
|
|
||||||
elm_widget_tooltip_add(tt->owner, tt);
|
elm_widget_tooltip_add(tt->owner, tt);
|
||||||
}
|
}
|
||||||
|
@ -597,11 +597,11 @@ elm_object_sub_tooltip_content_cb_set(Evas_Object *eventarea, Evas_Object *owner
|
||||||
(eventarea, EVAS_CALLBACK_MOUSE_OUT,
|
(eventarea, EVAS_CALLBACK_MOUSE_OUT,
|
||||||
_elm_tooltip_obj_mouse_out_cb, tt);
|
_elm_tooltip_obj_mouse_out_cb, tt);
|
||||||
evas_object_event_callback_add
|
evas_object_event_callback_add
|
||||||
(eventarea, EVAS_CALLBACK_DEL, _elm_tooltip_obj_del_cb, tt);
|
(eventarea, EVAS_CALLBACK_FREE, _elm_tooltip_obj_free_cb, tt);
|
||||||
|
|
||||||
if (owner != eventarea)
|
if (owner != eventarea)
|
||||||
evas_object_event_callback_add
|
evas_object_event_callback_add
|
||||||
(owner, EVAS_CALLBACK_DEL, _elm_tooltip_obj_del_cb, tt);
|
(owner, EVAS_CALLBACK_FREE, _elm_tooltip_obj_free_cb, tt);
|
||||||
|
|
||||||
elm_widget_tooltip_add(tt->owner, tt);
|
elm_widget_tooltip_add(tt->owner, tt);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue