forked from enlightenment/efl
1. removed mosue_events 0 on swallows - as this now changes behavior. normalise
2. gustavo's patch. SVN revision: 29352
This commit is contained in:
parent
7512a58ace
commit
e0b17ee4ee
|
@ -364,3 +364,57 @@ _edje_pending_timer_cb(void *data)
|
|||
free(pp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
_edje_callbacks_add(Evas_Object *obj, Edje *ed, Edje_Real_Part *rp)
|
||||
{
|
||||
evas_object_event_callback_add(obj,
|
||||
EVAS_CALLBACK_MOUSE_IN,
|
||||
_edje_mouse_in_cb,
|
||||
ed);
|
||||
evas_object_event_callback_add(obj,
|
||||
EVAS_CALLBACK_MOUSE_OUT,
|
||||
_edje_mouse_out_cb,
|
||||
ed);
|
||||
evas_object_event_callback_add(obj,
|
||||
EVAS_CALLBACK_MOUSE_DOWN,
|
||||
_edje_mouse_down_cb,
|
||||
ed);
|
||||
evas_object_event_callback_add(obj,
|
||||
EVAS_CALLBACK_MOUSE_UP,
|
||||
_edje_mouse_up_cb,
|
||||
ed);
|
||||
evas_object_event_callback_add(obj,
|
||||
EVAS_CALLBACK_MOUSE_MOVE,
|
||||
_edje_mouse_move_cb,
|
||||
ed);
|
||||
evas_object_event_callback_add(obj,
|
||||
EVAS_CALLBACK_MOUSE_WHEEL,
|
||||
_edje_mouse_wheel_cb,
|
||||
ed);
|
||||
evas_object_data_set(obj, "real_part", rp);
|
||||
}
|
||||
|
||||
void
|
||||
_edje_callbacks_del(Evas_Object *obj)
|
||||
{
|
||||
evas_object_event_callback_del(obj,
|
||||
EVAS_CALLBACK_MOUSE_IN,
|
||||
_edje_mouse_in_cb);
|
||||
evas_object_event_callback_del(obj,
|
||||
EVAS_CALLBACK_MOUSE_OUT,
|
||||
_edje_mouse_out_cb);
|
||||
evas_object_event_callback_del(obj,
|
||||
EVAS_CALLBACK_MOUSE_DOWN,
|
||||
_edje_mouse_down_cb);
|
||||
evas_object_event_callback_del(obj,
|
||||
EVAS_CALLBACK_MOUSE_UP,
|
||||
_edje_mouse_up_cb);
|
||||
evas_object_event_callback_del(obj,
|
||||
EVAS_CALLBACK_MOUSE_MOVE,
|
||||
_edje_mouse_move_cb);
|
||||
evas_object_event_callback_del(obj,
|
||||
EVAS_CALLBACK_MOUSE_WHEEL,
|
||||
_edje_mouse_wheel_cb);
|
||||
evas_object_data_del(obj, "real_part");
|
||||
}
|
||||
|
|
|
@ -131,31 +131,7 @@ edje_object_file_set(Evas_Object *obj, const char *file, const char *part)
|
|||
{
|
||||
if (ep->mouse_events)
|
||||
{
|
||||
evas_object_event_callback_add(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_IN,
|
||||
_edje_mouse_in_cb,
|
||||
ed);
|
||||
evas_object_event_callback_add(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_OUT,
|
||||
_edje_mouse_out_cb,
|
||||
ed);
|
||||
evas_object_event_callback_add(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_DOWN,
|
||||
_edje_mouse_down_cb,
|
||||
ed);
|
||||
evas_object_event_callback_add(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_UP,
|
||||
_edje_mouse_up_cb,
|
||||
ed);
|
||||
evas_object_event_callback_add(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_MOVE,
|
||||
_edje_mouse_move_cb,
|
||||
ed);
|
||||
evas_object_event_callback_add(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_WHEEL,
|
||||
_edje_mouse_wheel_cb,
|
||||
ed);
|
||||
evas_object_data_set(rp->object, "real_part", rp);
|
||||
_edje_callbacks_add(rp->object, ed, rp);
|
||||
if (ep->repeat_events)
|
||||
evas_object_repeat_events_set(rp->object, 1);
|
||||
}
|
||||
|
@ -537,25 +513,8 @@ _edje_file_del(Edje *ed)
|
|||
ed->parts = evas_list_remove(ed->parts, rp);
|
||||
if (rp->object)
|
||||
{
|
||||
evas_object_event_callback_del(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_IN,
|
||||
_edje_mouse_in_cb);
|
||||
evas_object_event_callback_del(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_OUT,
|
||||
_edje_mouse_out_cb);
|
||||
evas_object_event_callback_del(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_DOWN,
|
||||
_edje_mouse_down_cb);
|
||||
evas_object_event_callback_del(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_UP,
|
||||
_edje_mouse_up_cb);
|
||||
evas_object_event_callback_del(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_MOVE,
|
||||
_edje_mouse_move_cb);
|
||||
evas_object_event_callback_del(rp->object,
|
||||
EVAS_CALLBACK_MOUSE_WHEEL,
|
||||
_edje_mouse_wheel_cb);
|
||||
_edje_text_real_part_on_del(ed, rp);
|
||||
_edje_callbacks_del(rp->object);
|
||||
evas_object_del(rp->object);
|
||||
}
|
||||
if (rp->swallowed_object)
|
||||
|
@ -565,6 +524,8 @@ _edje_file_del(Edje *ed)
|
|||
EVAS_CALLBACK_FREE,
|
||||
_edje_object_part_swallow_free_cb);
|
||||
evas_object_clip_unset(rp->swallowed_object);
|
||||
if (rp->part->mouse_events)
|
||||
_edje_callbacks_del(rp->swallowed_object);
|
||||
rp->swallowed_object = NULL;
|
||||
/* I think it would be better swallowed objects dont get deleted */
|
||||
/* evas_object_del(rp->swallowed_object);*/
|
||||
|
|
|
@ -912,6 +912,8 @@ void _edje_mouse_move_cb(void *data, Evas * e, Evas_Object * obj, void *event_i
|
|||
void _edje_mouse_wheel_cb(void *data, Evas * e, Evas_Object * obj, void *event_info);
|
||||
int _edje_timer_cb(void *data);
|
||||
int _edje_pending_timer_cb(void *data);
|
||||
void _edje_callbacks_add(Evas_Object *obj, Edje *ed, Edje_Real_Part *rp);
|
||||
void _edje_callbacks_del(Evas_Object *obj);
|
||||
|
||||
void _edje_edd_setup(void);
|
||||
void _edje_edd_free(void);
|
||||
|
|
|
@ -785,6 +785,8 @@ edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_sw
|
|||
_edje_object_part_swallow_free_cb);
|
||||
evas_object_clip_unset(rp->swallowed_object);
|
||||
evas_object_data_del(rp->swallowed_object, "\377 edje.swallowing_part");
|
||||
if (rp->part->mouse_events)
|
||||
_edje_callbacks_del(rp->swallowed_object);
|
||||
rp->swallowed_object = NULL;
|
||||
}
|
||||
if (!obj_swallow) return;
|
||||
|
@ -845,6 +847,17 @@ edje_object_part_swallow(Evas_Object *obj, const char *part, Evas_Object *obj_sw
|
|||
rp->swallow_params.aspect.h = ah;
|
||||
evas_object_data_set(rp->swallowed_object, "\377 edje.swallowing_part", rp);
|
||||
}
|
||||
|
||||
if (rp->part->mouse_events)
|
||||
{
|
||||
_edje_callbacks_add(obj_swallow, ed, rp);
|
||||
if (rp->part->repeat_events)
|
||||
evas_object_repeat_events_set(obj_swallow, 1);
|
||||
}
|
||||
else
|
||||
evas_object_pass_events_set(obj_swallow, 1);
|
||||
|
||||
|
||||
ed->dirty = 1;
|
||||
_edje_recalc(ed);
|
||||
}
|
||||
|
@ -1004,6 +1017,10 @@ edje_object_part_unswallow(Evas_Object *obj, Evas_Object *obj_swallow)
|
|||
_edje_object_part_swallow_free_cb);
|
||||
evas_object_clip_unset(rp->swallowed_object);
|
||||
evas_object_data_del(rp->swallowed_object, "\377 edje.swallowing_part");
|
||||
|
||||
if (rp->part->mouse_events)
|
||||
_edje_callbacks_del(rp->swallowed_object);
|
||||
|
||||
rp->swallowed_object = NULL;
|
||||
rp->swallow_params.min.w = 0;
|
||||
rp->swallow_params.min.h = 0;
|
||||
|
|
Loading…
Reference in New Issue