]> Pileus Git - ~andy/gtk/commitdiff
configure: Check for XGetEventData()
authorCarlos Garnacho <carlosg@gnome.org>
Fri, 20 May 2011 20:21:59 +0000 (22:21 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Fri, 27 May 2011 09:53:26 +0000 (11:53 +0200)
This is a call only available in recent libX11, only the XI2 code
depends on this within GDK, but XI2 implies having GenericEvents
available too.

configure.ac
gdk/x11/gdkeventsource.c

index 86b75c07d7a5e0cdafad13d51b6a881636139a78..bb0865a138c1e2da4714a027b767bb2d3423b035 100644 (file)
@@ -1096,6 +1096,10 @@ if test "x$enable_x11_backend" = xyes; then
     fi
   fi
 
+  # Check for XGetEventData for GenericEvents
+  AC_CHECK_FUNC(XGetEventData,
+                AC_DEFINE(HAVE_XGENERICEVENTS, 1, [Have XGenericEvent]))
+
   # set up things for XInput
   if test "x$enable_xinput" != "xno" && $PKG_CONFIG --exists "xi" ; then
     have_xinput=yes
index 2c25c85db6ae3d91a1f30941d0da2aac411629b1..5825df1f0e4f6e955eaa6a81228a0dc431fad398 100644 (file)
@@ -177,11 +177,13 @@ gdk_event_source_translate_event (GdkEventSource *event_source,
 
   dpy = GDK_DISPLAY_XDISPLAY (event_source->display);
 
+#ifdef HAVE_XGENERICEVENTS
   /* Get cookie data here so it's available
    * to every event translator and event filter.
    */
   if (xevent->type == GenericEvent)
     XGetEventData (dpy, &xevent->xcookie);
+#endif
 
   filter_window = gdk_event_source_get_filter_window (event_source, xevent,
                                                       &event_translator);
@@ -204,8 +206,10 @@ gdk_event_source_translate_event (GdkEventSource *event_source,
 
   if (result != GDK_FILTER_CONTINUE)
     {
+#ifdef HAVE_XGENERICEVENTS
       if (xevent->type == GenericEvent)
         XFreeEventData (dpy, &xevent->xcookie);
+#endif
 
       if (result == GDK_FILTER_REMOVE)
         {
@@ -250,8 +254,10 @@ gdk_event_source_translate_event (GdkEventSource *event_source,
       handle_focus_change (&event->crossing);
     }
 
+#ifdef HAVE_XGENERICEVENTS
   if (xevent->type == GenericEvent)
     XFreeEventData (dpy, &xevent->xcookie);
+#endif
 
   return event;
 }