Hi Raster,
On Thu, Nov 15, 2012 at 02:25:38PM +0900, Carsten Haitzler wrote:
> On Tue, 13 Nov 2012 11:49:47 -0200 Leandro Dorileo <dori...@profusion.mobi>
> said:
>
> noooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo!
>
> this breaks abi.
>
> never ADD structure members in the middle of a structure - add them at the
> END... always! at least in public api's!
Ok, attached goes a version considering the ABI thing. Thank you for reviewing.
>
> > Hi,
> >
> > Attached patch introduces fields to events Evas_Event_Mouse_* structures
> > to hold the event source evas object in case of evas source events
> > propagation.
> >
> > Regards....
> >
Regards....
--
Leandro Dorileo
ProFUSION embedded systems
http://profusion.mobi
>From ebc2826222a26354656a457338a829fe5fb664ef Mon Sep 17 00:00:00 2001
From: Leandro Dorileo <dori...@profusion.mobi>
Date: Tue, 13 Nov 2012 11:41:39 -0200
Subject: [PATCH] evas: add event source evas object
This patch introduces fields to event Evas_Event_Mouse_* structures
to hold the event source evas object in case of evas source events
propagation.
---
src/lib/Evas.h | 5 +++++
src/lib/canvas/evas_events.c | 10 ++++++++++
2 files changed, 15 insertions(+)
diff --git a/src/lib/Evas.h b/src/lib/Evas.h
index e964e75..297e364 100644
--- a/src/lib/Evas.h
+++ b/src/lib/Evas.h
@@ -1103,6 +1103,7 @@ struct _Evas_Event_Mouse_Down /** Mouse button press
event */
unsigned int timestamp;
Evas_Event_Flags event_flags;
Evas_Device *dev;
+ Evas_Object *event_src; /**< The Evas Object which actually triggered
the event, used in cases of proxy event propagation */
};
struct _Evas_Event_Mouse_Up /** Mouse button release event */
@@ -1120,6 +1121,7 @@ struct _Evas_Event_Mouse_Up /** Mouse button release
event */
unsigned int timestamp;
Evas_Event_Flags event_flags;
Evas_Device *dev;
+ Evas_Object *event_src; /**< The Evas Object which actually triggered
the event, used in cases of proxy event propagation */
};
struct _Evas_Event_Mouse_In /** Mouse enter event */
@@ -1135,6 +1137,7 @@ struct _Evas_Event_Mouse_In /** Mouse enter event */
unsigned int timestamp;
Evas_Event_Flags event_flags;
Evas_Device *dev;
+ Evas_Object *event_src; /**< The Evas Object which actually triggered
the event, used in cases of proxy event propagation */
};
struct _Evas_Event_Mouse_Out /** Mouse leave event */
@@ -1150,6 +1153,7 @@ struct _Evas_Event_Mouse_Out /** Mouse leave event */
unsigned int timestamp;
Evas_Event_Flags event_flags;
Evas_Device *dev;
+ Evas_Object *event_src; /**< The Evas Object which actually triggered
the event, used in cases of proxy event propagation */
};
struct _Evas_Event_Mouse_Move /** Mouse move event */
@@ -1165,6 +1169,7 @@ struct _Evas_Event_Mouse_Move /** Mouse move event */
unsigned int timestamp;
Evas_Event_Flags event_flags;
Evas_Device *dev;
+ Evas_Object *event_src; /**< The Evas Object which actually triggered
the event, used in cases of proxy event propagation */
};
struct _Evas_Event_Mouse_Wheel /** Wheel event */
diff --git a/src/lib/canvas/evas_events.c b/src/lib/canvas/evas_events.c
index ba643b7..b43c1d6 100644
--- a/src/lib/canvas/evas_events.c
+++ b/src/lib/canvas/evas_events.c
@@ -200,6 +200,8 @@ _evas_event_source_mouse_down_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event
_transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
+ ev->event_src = eo_obj;
+
if (src->proxy.src_event_in)
src->proxy.src_event_in = eina_list_free(src->proxy.src_event_in);
@@ -270,6 +272,8 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event
_transform_to_src_space(obj, src, &ev->cur.canvas.x, &ev->cur.canvas.y);
+ ev->event_src = eo_obj;
+
//FIXME: transform previous coords also.
Eina_List *l;
Evas_Object *eo_child;
@@ -447,6 +451,8 @@ _evas_event_source_mouse_up_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event_M
_transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
+ ev->event_src = eo_obj;
+
Eina_List *l;
Evas_Object *eo_child;
Evas_Object_Protected_Data *child;
@@ -771,6 +777,8 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event_
_transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
+ ev->event_src = eo_obj;
+
Eina_List *ins = NULL;
if (src->is_smart)
{
@@ -825,6 +833,8 @@ _evas_event_source_mouse_out_events(Evas_Object *eo_obj,
Evas *eo_e, Evas_Event_
_transform_to_src_space(obj, src, &ev->canvas.x, &ev->canvas.y);
+ ev->event_src = eo_obj;
+
Eina_List *l;
Evas_Object *eo_child;
Eina_List *copy = evas_event_list_copy(src->proxy.src_event_in);
--
1.8.0
------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel