This is an override of efl_gfx_position_set.
As for the other patches, I hope I didn't break anything.
A problem likely to happen is that the super call was inserted
too early or too late in the call flow. For instance:
_myclass_position_set(obj, x, y) {
position_set(super(obj), x, y);
position_get(obj, &prevx, &prevy);
do_something_with_delta_xy();
}
The above code flow is obvisouly wrong, but may have crept in this
patch (such a bug sneaked in inside smart object, breaking
everything at first).
}
implements {
Efl.Gfx.visible.set;
+ Efl.Gfx.position.set;
Efl.Object.constructor;
Efl.Object.destructor;
Efl.Object.dbg_info_get;
Efl.Canvas.Object.no_render.set;
Efl.Canvas.Object.paragraph_direction.set;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_resize;
}
EOLIAN static void
-_edje_object_efl_canvas_group_group_move(Eo *obj EINA_UNUSED, Edje *ed, Evas_Coord x, Evas_Coord y)
+_edje_object_efl_gfx_position_set(Eo *obj, Edje *ed, Evas_Coord x, Evas_Coord y)
{
unsigned short i;
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
+
if ((ed->x == x) && (ed->y == y)) return;
ed->x = x;
ed->y = y;
}
EOLIAN static void
-_efl_ui_image_efl_canvas_group_group_move(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Coord x, Evas_Coord y)
+_efl_ui_image_efl_gfx_position_set(Eo *obj, Efl_Ui_Image_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
if ((sd->img_x == x) && (sd->img_y == y)) return;
sd->img_x = x;
Efl.File.mmap.set;
Efl.Gfx.color.set;
Efl.Gfx.visible.set;
+ Efl.Gfx.position.set;
Efl.Gfx.View.view_size.get;
Efl.Image.Load.load_size.set;
Efl.Image.Load.load_size.get;
Edje.Object.size_min_calc;
Edje.Object.calc_force;
Efl.Canvas.Object.clip.set;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_member_add;
}
EOLIAN static void
-_efl_ui_text_efl_canvas_group_group_move(Eo *obj, Efl_Ui_Text_Data *sd, Evas_Coord x, Evas_Coord y)
+_efl_ui_text_efl_gfx_position_set(Eo *obj, Efl_Ui_Text_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
Efl.Object.constructor;
Efl.Object.destructor;
Efl.Gfx.visible.set;
- Efl.Canvas.Group.group_move;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_member_add;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_resize;
}
EOLIAN static void
-_efl_ui_win_efl_canvas_group_group_move(Eo *obj, Efl_Ui_Win_Data *sd, Evas_Coord x, Evas_Coord y)
+_efl_ui_win_efl_gfx_position_set(Eo *obj, Efl_Ui_Win_Data *sd, Evas_Coord x, Evas_Coord y)
{
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
if (sd->img_obj)
{
if ((x != sd->screen.x) || (y != sd->screen.y))
sd->screen.y = y;
efl_event_callback_legacy_call(obj, EFL_GFX_EVENT_MOVE, NULL);
}
- return;
+ goto super_skip;
}
else
{
if (!sd->response) TRAP(sd, move, x, y);
- if (!ecore_evas_override_get(sd->ee)) return;
+ if (!ecore_evas_override_get(sd->ee)) goto super_skip;
}
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
if (ecore_evas_override_get(sd->ee))
{
sd->screen.x = x;
sd->screen.y = y;
}
+
+ return;
+
+super_skip:
+ /* FIXME FIXME FIXME
+ * Ugly code flow: legacy code had an early return in smart_move, ie.
+ * evas object move would be processed but smart object move would be
+ * aborted. This super call tries to simulate that. */
+ efl_gfx_position_set(efl_super(obj, EFL_CANVAS_GROUP_CLASS), x, y);
}
EOLIAN static void
Efl.Object.constructor;
Efl.Object.finalize;
Efl.Gfx.visible.set;
- Efl.Canvas.Group.group_move;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_resize;
}
EOLIAN static void
-_elm_diskselector_efl_canvas_group_group_move(Eo *obj, Elm_Diskselector_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_diskselector_efl_gfx_position_set(Eo *obj, Elm_Diskselector_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
}
implements {
class.constructor;
Efl.Object.constructor;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_member_add;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_resize;
}
EOLIAN static void
-_elm_entry_efl_canvas_group_group_move(Eo *obj, Elm_Entry_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_entry_efl_gfx_position_set(Eo *obj, Elm_Entry_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
class.constructor;
Efl.Object.constructor;
Efl.Gfx.visible.set;
- Efl.Canvas.Group.group_move;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_member_add;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_resize;
}
EOLIAN static void
-_elm_gengrid_pan_efl_canvas_group_group_move(Eo *obj EINA_UNUSED, Elm_Gengrid_Pan_Data *psd, Evas_Coord _gen_param2 EINA_UNUSED, Evas_Coord _gen_param3 EINA_UNUSED)
+_elm_gengrid_pan_efl_gfx_position_set(Eo *obj, Elm_Gengrid_Pan_Data *psd, Evas_Coord x, Evas_Coord y)
{
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), x, y);
+
ecore_job_del(psd->wsd->calc_job);
psd->wsd->calc_job = ecore_job_add(_calc_job, psd->wobj);
}
}
EOLIAN static void
-_elm_gengrid_efl_canvas_group_group_move(Eo *obj, Elm_Gengrid_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_gengrid_efl_gfx_position_set(Eo *obj, Elm_Gengrid_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
}
implements {
class.constructor;
Efl.Object.constructor;
- Efl.Canvas.Group.group_move;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_member_add;
implements {
class.constructor;
Efl.Object.destructor;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_calculate;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_resize;
Elm.Pan.content_size.get;
Elm.Pan.pos;
}
EOLIAN static void
-_elm_genlist_pan_efl_canvas_group_group_move(Eo *obj, Elm_Genlist_Pan_Data *psd, Evas_Coord _gen_param2 EINA_UNUSED, Evas_Coord _gen_param3 EINA_UNUSED)
+_elm_genlist_pan_efl_gfx_position_set(Eo *obj, Elm_Genlist_Pan_Data *psd, Evas_Coord x, Evas_Coord y)
{
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), x, y);
+
psd->wsd->pan_changed = EINA_TRUE;
evas_object_smart_changed(obj);
ELM_SAFE_FREE(psd->wsd->calc_job, ecore_job_del);
}
EOLIAN static void
-_elm_genlist_efl_canvas_group_group_move(Eo *obj, Elm_Genlist_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_genlist_efl_gfx_position_set(Eo *obj, Elm_Genlist_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
}
implements {
class.constructor;
Efl.Object.constructor;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_member_add;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_resize;
implements {
class.constructor;
Efl.Object.destructor;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_calculate;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_resize;
Elm.Pan.content_size.get;
}
EOLIAN static void
-_elm_hover_efl_canvas_group_group_move(Eo *obj, Elm_Hover_Data *_pd EINA_UNUSED, Evas_Coord x, Evas_Coord y)
+_elm_hover_efl_gfx_position_set(Eo *obj, Elm_Hover_Data *_pd EINA_UNUSED, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
elm_layout_sizing_eval(obj);
}
class.constructor;
Efl.Object.constructor;
Efl.Gfx.visible.set;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_del;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_resize;
Elm.Widget.theme_apply;
}
EOLIAN static void
-_elm_pan_efl_canvas_group_group_move(Eo *obj EINA_UNUSED, Elm_Pan_Smart_Data *psd, Evas_Coord x, Evas_Coord y)
+_elm_pan_efl_gfx_position_set(Eo *obj, Elm_Pan_Smart_Data *psd, Evas_Coord x, Evas_Coord y)
{
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), x, y);
+
psd->x = x;
psd->y = y;
}
EOLIAN static void
-_elm_list_efl_canvas_group_group_move(Eo *obj, Elm_List_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_list_efl_gfx_position_set(Eo *obj, Elm_List_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
}
implements {
class.constructor;
Efl.Object.constructor;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_member_add;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_resize;
}
EOLIAN static void
-_elm_map_pan_efl_canvas_group_group_move(Eo *obj, Elm_Map_Pan_Data *_pd EINA_UNUSED, Evas_Coord x EINA_UNUSED, Evas_Coord y EINA_UNUSED)
+_elm_map_pan_efl_gfx_position_set(Eo *obj, Elm_Map_Pan_Data *_pd EINA_UNUSED, Evas_Coord x, Evas_Coord y)
{
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_smart_changed(obj);
}
}
EOLIAN static void
-_elm_map_efl_canvas_group_group_move(Eo *obj, Elm_Map_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_map_efl_gfx_position_set(Eo *obj, Elm_Map_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
}
implements {
class.constructor;
Efl.Object.constructor;
- Efl.Canvas.Group.group_move;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_member_add;
implements {
class.constructor;
Efl.Object.destructor;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_calculate;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_resize;
Elm.Pan.content_size.get;
Elm.Pan.pos;
}
EOLIAN static void
-_elm_mapbuf_efl_canvas_group_group_move(Eo *obj, Elm_Mapbuf_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_mapbuf_efl_gfx_position_set(Eo *obj, Elm_Mapbuf_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
_mapbuf_auto_eval(obj, sd);
_mapbuf_auto_smooth(obj, sd);
class.constructor;
Efl.Object.constructor;
Efl.Gfx.visible.set;
- Efl.Canvas.Group.group_move;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_resize;
}
EOLIAN static void
-_elm_notify_efl_canvas_group_group_move(Eo *obj, Elm_Notify_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_notify_efl_gfx_position_set(Eo *obj, Elm_Notify_Data *sd, Evas_Coord x, Evas_Coord y)
{
- Evas_Coord w, h;
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
if (!sd->parent && sd->content)
{
+ Evas_Coord w, h;
+
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
_notify_move_to_orientation(obj, x, y, w, h);
}
class.constructor;
Efl.Object.constructor;
Efl.Gfx.visible.set;
- Efl.Canvas.Group.group_move;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_resize;
Efl.Object.constructor;
class.constructor;
Efl.Gfx.visible.set;
- Efl.Canvas.Group.group_move;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_resize;
}
EOLIAN static void
-_elm_panel_efl_canvas_group_group_move(Eo *obj, Elm_Panel_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_panel_efl_gfx_position_set(Eo *obj, Elm_Panel_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
}
implements {
class.constructor;
Efl.Object.constructor;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_member_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_resize;
- Efl.Canvas.Group.group_move;
Elm.Widget.theme_apply;
Elm.Widget.focus_next_manager_is;
Elm.Widget.focus_next;
}
EOLIAN static void
-_elm_photocam_pan_efl_canvas_group_group_move(Eo *obj EINA_UNUSED, Elm_Photocam_Pan_Data *psd, Evas_Coord x EINA_UNUSED, Evas_Coord y EINA_UNUSED)
+_elm_photocam_pan_efl_gfx_position_set(Eo *obj, Elm_Photocam_Pan_Data *psd, Evas_Coord x, Evas_Coord y)
{
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_PAN_CLASS), x, y);
+
ecore_job_del(psd->wsd->calc_job);
psd->wsd->calc_job = ecore_job_add(_calc_job_cb, psd->wobj);
}
}
EOLIAN static void
-_elm_photocam_efl_canvas_group_group_move(Eo *obj, Elm_Photocam_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_photocam_efl_gfx_position_set(Eo *obj, Elm_Photocam_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
}
implements {
class.constructor;
Efl.Object.constructor;
- Efl.Canvas.Group.group_move;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_member_add;
implements {
class.constructor;
Efl.Object.destructor;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_calculate;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_resize;
Elm.Pan.content_size.get;
Elm.Pan.pos;
}
EOLIAN static void
-_elm_scroller_efl_canvas_group_group_move(Eo *obj, Elm_Scroller_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_scroller_efl_gfx_position_set(Eo *obj, Elm_Scroller_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
}
implements {
class.constructor;
Efl.Object.constructor;
- Efl.Canvas.Group.group_move;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_member_add;
Efl.Canvas.Group.group_resize;
}
EOLIAN static void
-_elm_toolbar_efl_canvas_group_group_move(Eo *obj, Elm_Toolbar_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_toolbar_efl_gfx_position_set(Eo *obj, Elm_Toolbar_Data *sd, Evas_Coord x, Evas_Coord y)
{
- efl_canvas_group_move(efl_super(obj, MY_CLASS), x, y);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
evas_object_move(sd->hit_rect, x, y);
}
implements {
class.constructor;
Efl.Object.constructor;
+ Efl.Gfx.position.set;
Efl.Canvas.Group.group_calculate;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Canvas.Group.group_member_add;
}
EOLIAN static void
-_elm_widget_efl_canvas_group_group_move(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd, Evas_Coord x, Evas_Coord y)
+_elm_widget_efl_gfx_position_set(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd, Evas_Coord x, Evas_Coord y)
{
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
+
sd->x = x;
sd->y = y;
Efl.Object.provider_find;
Efl.Gfx.color.set;
Efl.Gfx.visible.set;
+ Efl.Gfx.position.set;
Efl.Canvas.Object.clip.set;
Efl.Canvas.Object.no_render.set;
Efl.Canvas.Group.group_calculate;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_member_del;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
Efl.Object.constructor;
Efl.Gfx.color.set;
Efl.Gfx.visible.set;
+ Efl.Gfx.position.set;
Efl.Canvas.Object.clip.set;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_resize;
Efl.File.file.set;
Efl.File.file.get;
}
EOLIAN static void
-_efl_canvas_video_efl_canvas_group_group_move(Evas_Object *obj, Efl_Canvas_Video_Data *sd, Evas_Coord x, Evas_Coord y)
+_efl_canvas_video_efl_gfx_position_set(Evas_Object *obj, Efl_Canvas_Video_Data *sd, Evas_Coord x, Evas_Coord y)
{
int w, h;
- evas_object_geometry_get(obj, NULL, NULL, &w, &h);
+ if (_evas_object_intercept_call(obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
+ efl_gfx_size_get(obj, &w, &h);
+ efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y);
+
_clipper_position_size_update(obj, x, y, w, h, sd->video.w, sd->video.h);
evas_object_move(sd->bg, x, y);
}
return: free(own(iterator<Efl.Gfx>), eina_iterator_free);
legacy: evas_object_smart_iterator_new;
}
- group_move {
- [[No description supplied by the EAPI.]]
- legacy: null;
- params {
- @in x: Evas.Coord;
- @in y: Evas.Coord;
- }
- }
group_add {
[[Instantiates a new smart object described by $s.
implements {
Efl.Gfx.color.set;
Efl.Gfx.visible.set;
+ Efl.Gfx.position.set;
Efl.Canvas.Object.clip.set;
Efl.Canvas.Object.no_render.set;
- Efl.Canvas.Group.group_move;
Efl.Canvas.Group.group_member_del;
Efl.Canvas.Group.group_add;
Efl.Canvas.Group.group_del;
else return evas_object_intercept_call_hide(eo_obj, obj);
case EVAS_OBJECT_INTERCEPT_CB_MOVE:
- if (!obj->interceptors) return 0;
+ if (obj->doing.in_move > 0)
+ {
+ WRN("evas_object_move() called on object %p (%s) in the middle "
+ "of moving the same object", eo_obj, efl_class_name_get(eo_obj));
+ return 1;
+ }
va_start(args, internal);
i = va_arg(args, int);
j = va_arg(args, int);
+ if ((obj->cur->geometry.x == i) && (obj->cur->geometry.y == j)) goto end_block;
+ if (!obj->interceptors) goto end_noblock;
blocked = evas_object_intercept_call_move(eo_obj, obj, i, j);
break;
Eina_Bool pass = EINA_FALSE, freeze = EINA_FALSE;
Eina_Bool source_invisible = EINA_FALSE;
- if (obj->delete_me) return;
- if (!obj->layer) return;
-
evas_object_async_block(obj);
- if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 1, x, y)) return;
-
- if (obj->doing.in_move > 0)
- {
- WRN("evas_object_move() called on object %p when in the middle of moving the same object", obj);
- return;
- }
-
- if ((obj->cur->geometry.x == x) && (obj->cur->geometry.y == y)) return;
+ if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 1, x, y))
+ return;
Evas_Map *map;
map = (Evas_Map *) evas_object_map_get(eo_obj);
}
obj->doing.in_move++;
- if (obj->is_smart)
- {
- efl_canvas_group_move(eo_obj, x, y);
- }
+ if (obj->is_smart && obj->smart.smart && obj->smart.smart->smart_class->move)
+ obj->smart.smart->smart_class->move(eo_obj, x, y);
EINA_COW_STATE_WRITE_BEGIN(obj, state_write, cur)
{
}
EOLIAN static void
-_efl_canvas_group_group_move(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Evas_Coord x, Evas_Coord y)
-{
- // If this function is reached, so we do nothing except trying to call
- // the function of the legacy smart class.
- Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
- Evas_Smart *s = obj->smart.smart;
- if (s && s->smart_class->move) s->smart_class->move(eo_obj, x, y);
-}
-
-EOLIAN static void
_efl_canvas_group_efl_canvas_object_no_render_set(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED, Eina_Bool enable)
{
Evas_Object_Protected_Data *obj2;
{
Evas_Coord orig_x, orig_y;
- evas_object_geometry_get(eo_obj, &orig_x, &orig_y, NULL, NULL);
+ efl_gfx_position_get(eo_obj, &orig_x, &orig_y);
evas_object_smart_move_children_relative(eo_obj, x - orig_x, y - orig_y);
}
EOLIAN static void
-_efl_canvas_group_clipped_efl_canvas_group_group_move(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Coord x, Evas_Coord y)
+_efl_canvas_group_clipped_efl_gfx_position_set(Eo *eo_obj, Evas_Object_Smart_Clipped_Data *obj EINA_UNUSED, Evas_Coord x, Evas_Coord y)
{
+ if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, x, y))
+ return;
+
evas_object_smart_clipped_smart_move(eo_obj, x, y);
+ efl_gfx_position_set(efl_super(eo_obj, MY_CLASS), x, y);
}
static void