-----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);
    }
 }
 

Reply via email to