-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I've attached a diff against ecore_x to pass through any client messages that
are unrecognised.
genneth
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFAkn1c1N42u6LLBTERAsGtAKCsBrowZQ6a8m8Qwued9aI1x5sdAgCgguNP
Qxp7wlC0Z87jHrpitJdcaHQ=
=+DrP
-----END PGP SIGNATURE-----
Index: Ecore_X.h
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/Ecore_X.h,v
retrieving revision 1.46
diff -u -r1.46 Ecore_X.h
--- Ecore_X.h 30 Apr 2004 03:10:16 -0000 1.46
+++ Ecore_X.h 30 Apr 2004 16:19:13 -0000
@@ -452,8 +452,15 @@
struct _Ecore_X_Event_Client_Message
{
- Ecore_X_Window win;
- Ecore_X_Time time;
+ Ecore_X_Window win;
+ Ecore_X_Atom message_type;
+ int format;
+ union {
+ char b[20];
+ short s[10];
+ long l[5];
+ } data;
+ Ecore_X_Time time;
};
struct _Ecore_X_Event_Window_Shape
Index: ecore_x_events.c
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/ecore_x_events.c,v
retrieving revision 1.28
diff -u -r1.28 ecore_x_events.c
--- ecore_x_events.c 24 Apr 2004 05:49:46 -0000 1.28
+++ ecore_x_events.c 30 Apr 2004 16:19:14 -0000
@@ -153,6 +153,14 @@
}
static void
+_ecore_x_event_free_client_message(void *data, void *ev)
+{
+ Ecore_X_Event_Client_Message *e;
+ e = ev;
+ free(e);
+}
+
+static void
_ecore_x_event_free_generic(void *data, void *ev)
{
free(ev);
@@ -1286,6 +1294,15 @@
else
{
/* FIXME: handle this event type */
+ Ecore_X_Event_Client_Message * e = (Ecore_X_Event_Client_Message *)
+ calloc(1, sizeof(Ecore_X_Event_Client_Message));
+ XClientMessageEvent * msgev = &(xevent->xclient);
+ int i;
+ e->win = msgev->window;
+ e->message_type = msgev->message_type;
+ e->format = msgev->format;
+ for(i = 0; i < 5; i++) e->data.l[i] = msgev->data.l[i];
+ ecore_event_add(ECORE_X_EVENT_CLIENT_MESSAGE, e, _ecore_x_event_free_client_message, NULL);
}
}