gdk/x11/gdkevents-x11.c (get_real_window) gdk/x11/gdkinput-x11.c

Tue Jul  8 20:11:04 2003  Owen Taylor  <otaylor@redhat.com>

        * gdk/x11/gdkevents-x11.c (get_real_window)
        gdk/x11/gdkinput-x11.c (_gdk_input_common_init)
        gdk/x11/gdkimage-x11.c (_gdk_windowing_image_init)
        gdk/x11/gdkprivate-x11.h (_gdk_windowing_image_init)
        Don't assume that all events start with XEventAny - Xkb events
        don't! (#105745). So, only do that for core events, and for
        non-core events, add a system for registering event types
        that start with XEventAny.

        * gdk/x11/gdkevents-x11.c (gdk_event_translate):
        Check to see if the result of gdk_window_lookup_for_display()
        is actually a window.
This commit is contained in:
Owen Taylor
2003-07-11 19:57:01 +00:00
committed by Owen Taylor
parent 7f8ae32c1d
commit 50da0ae808
11 changed files with 234 additions and 101 deletions

View File

@ -385,18 +385,17 @@ _gdk_input_common_init (GdkDisplay *display,
XDeviceInfo *devices;
int num_devices;
int num_extensions, loop;
int ignore, event_base;
GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display);
/* Init XInput extension */
extensions = XListExtensions(display_x11->xdisplay, &num_extensions);
for (loop = 0; loop < num_extensions &&
(strcmp(extensions[loop], "XInputExtension") != 0); loop++);
XFreeExtensionList(extensions);
display_x11->input_devices = NULL;
if (loop < num_extensions)
if (XQueryExtension (display_x11->xdisplay, "XInputExtension",
&ignore, &event_base, &ignore))
{
/* XInput extension found */
_gdk_x11_register_event_type (display,
event_base, 9 /* Number of events */);
devices = XListInputDevices(display_x11->xdisplay, &num_devices);