antognolli pushed a commit to branch master.
commit 8d88a73f68438521f8d359eaa89fee24fa3fa90a
Author: Rafael Antognolli <[email protected]>
Date: Tue Mar 26 13:42:03 2013 -0300
evas/events: Fix evas_events framespace offset.
Framespace offset adjustment should be applied to every object not
marked with "is_frame".
Additionally, it should be applied only once. Since it is already being
applied on the *_feed_mouse_* functions, there's no need to apply it
again on the _evas_event_source_mouse_* functions, which are called by
the former ones.
Also add the missing adjustment to the feed_mouse_move one.
---
src/lib/evas/canvas/evas_events.c | 46 ++++++---------------------------------
1 file changed, 7 insertions(+), 39 deletions(-)
diff --git a/src/lib/evas/canvas/evas_events.c
b/src/lib/evas/canvas/evas_events.c
index e56106b..8641502 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -35,16 +35,13 @@ static void
_evas_event_framespace_adjust(Evas_Object *eo_obj, Evas_Coord *x, Evas_Coord
*y)
{
Evas_Object_Protected_Data *obj = eo_data_get(eo_obj, EVAS_OBJ_CLASS);
+ Evas_Public_Data *evas;
+
if (obj->is_frame) return;
-
- if ((!obj->smart.parent) && (obj->is_smart))
- {
- Evas_Public_Data *evas;
- evas = obj->layer->evas;
- if (x) *x -= evas->framespace.x;
- if (y) *y -= evas->framespace.y;
- }
+ evas = obj->layer->evas;
+ if (x) *x -= evas->framespace.x;
+ if (y) *y -= evas->framespace.y;
}
static Eina_List *
@@ -303,8 +300,6 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event
(!child->clip.clipees))
{
ev->cur.canvas = point;
- _evas_event_framespace_adjust(eo_child, &ev->cur.canvas.x,
- &ev->cur.canvas.y);
_evas_event_havemap_adjust(eo_child, child,
&ev->cur.canvas.x,
&ev->cur.canvas.y,
child->mouse_grabbed);
@@ -332,8 +327,6 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event
child->mouse_in = 0;
if (child->delete_me || e->is_frozen) continue;
ev->cur.canvas = canvas;
- _evas_event_framespace_adjust(eo_child, &ev->cur.canvas.x,
- &ev->cur.canvas.y);
_evas_event_havemap_adjust(eo_child, child,
&ev->cur.canvas.x,
&ev->cur.canvas.y,
child->mouse_grabbed);
@@ -393,9 +386,6 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event
child->mouse_in = 0;
if (e->is_frozen) continue;
ev->cur.canvas = point;
- _evas_event_framespace_adjust(eo_child,
- &ev->cur.canvas.x,
- &ev->cur.canvas.y);
_evas_event_havemap_adjust(eo_child, child,
&ev->cur.canvas.x,
&ev->cur.canvas.y,
@@ -421,9 +411,6 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event
child->mouse_in = 1;
if (e->is_frozen) continue;
ev->cur.canvas = point;
- _evas_event_framespace_adjust(eo_child,
- &ev->cur.canvas.x,
- &ev->cur.canvas.y);
_evas_event_havemap_adjust(eo_child, child,
&ev->cur.canvas.x,
&ev->cur.canvas.y,
@@ -485,9 +472,6 @@ _evas_event_source_mouse_up_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event_M
}
ev->canvas = point;
- _evas_event_framespace_adjust(eo_child,
- &ev->canvas.x,
- &ev->canvas.y);
_evas_event_havemap_adjust(eo_child, child,
&ev->canvas.x,
&ev->canvas.y,
@@ -553,9 +537,6 @@ _evas_event_source_wheel_events(Evas_Object *eo_obj, Evas
*eo_e, Evas_Event_Mous
if (src->delete_me) return;
child = eo_data_get(eo_child, EVAS_OBJ_CLASS);
ev->canvas = point;
- _evas_event_framespace_adjust(eo_child,
- &ev->canvas.x,
- &ev->canvas.y);
_evas_event_havemap_adjust(eo_child, child,
&ev->canvas.x,
&ev->canvas.y,
@@ -605,9 +586,6 @@ _evas_event_source_multi_down_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event
EINA_LIST_FOREACH(copy, l, eo_child)
{
ev->canvas = point;
- _evas_event_framespace_adjust(eo_child,
- &ev->canvas.x,
- &ev->canvas.y);
_evas_event_havemap_adjust(eo_child, child,
&ev->canvas.x,
&ev->canvas.y,
@@ -653,9 +631,6 @@ _evas_event_source_multi_up_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event_M
child->mouse_grabbed--;
e->pointer.mouse_grabbed--;
}
- _evas_event_framespace_adjust(eo_child,
- &ev->canvas.x,
- &ev->canvas.y);
_evas_event_havemap_adjust(eo_child, child,
&ev->canvas.x,
&ev->canvas.y,
@@ -705,9 +680,6 @@ _evas_event_source_multi_move_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event
(!child->clip.clipees))))
{
ev->cur.canvas = point;
- _evas_event_framespace_adjust(eo_child,
- &ev->cur.canvas.x,
- &ev->cur.canvas.y);
_evas_event_havemap_adjust(eo_child, child,
&ev->cur.canvas.x,
&ev->cur.canvas.y,
@@ -751,9 +723,6 @@ _evas_event_source_multi_move_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event
evas_object_is_inside(eo_child, child, ev->cur.canvas.x,
ev->cur.canvas.y)))
{
- _evas_event_framespace_adjust(eo_child,
- &ev->cur.canvas.x,
- &ev->cur.canvas.y);
_evas_event_havemap_adjust(eo_child, child,
&ev->cur.canvas.x,
&ev->cur.canvas.y,
@@ -821,8 +790,6 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event_
child->mouse_in = 1;
ev->canvas = point;
- _evas_event_framespace_adjust(eo_child, &ev->canvas.x,
- &ev->canvas.y);
_evas_event_havemap_adjust(eo_child, child, &ev->canvas.x,
&ev->canvas.y,
@@ -877,7 +844,6 @@ _evas_event_source_mouse_out_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event_
ev->canvas = point;
- _evas_event_framespace_adjust(eo_child, &ev->canvas.x, &ev->canvas.y);
_evas_event_havemap_adjust(eo_child, child, &ev->canvas.x,
&ev->canvas.y, child->mouse_grabbed);
evas_object_event_callback_call(eo_child, child,
@@ -1770,6 +1736,8 @@ _canvas_event_feed_mouse_move(Eo *eo_e, void *_pd,
va_list *list)
{
ev.cur.canvas.x = e->pointer.x;
ev.cur.canvas.y = e->pointer.y;
+ _evas_event_framespace_adjust(eo_obj, &ev.cur.canvas.x,
+ &ev.cur.canvas.y);
_evas_event_havemap_adjust(eo_obj, obj,
&ev.cur.canvas.x, &ev.cur.canvas.y, obj->mouse_grabbed);
evas_object_event_callback_call(eo_obj, obj,
EVAS_CALLBACK_MOUSE_MOVE, &ev, event_id);
if ((obj->proxy->is_proxy) && (obj->proxy->src_events))
--
------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire
the most talented Cisco Certified professionals. Visit the
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html