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:
@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user