forked from AuroraMiddleware/gtk
Select for DeviceStateNotify
Signed-off-by: Thomas Jaeger <ThJaeger@gmail.com> https://bugzilla.gnome.org/show_bug.cgi?id=588649
This commit is contained in:
parent
0178ebf739
commit
70bd23537f
@ -278,6 +278,7 @@ _gdk_input_common_find_events (GdkDevicePrivate *gdkdev,
|
||||
DeviceMotionNotify (gdkdev->xdevice, gdkdev->motionnotify_type, class);
|
||||
if (class != 0)
|
||||
classes[i++] = class;
|
||||
DeviceStateNotify (gdkdev->xdevice, gdkdev->devicestatenotify_type, class);
|
||||
if (class != 0)
|
||||
classes[i++] = class;
|
||||
}
|
||||
@ -699,6 +700,26 @@ _gdk_input_common_other_event (GdkEvent *event,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (xevent->type == gdkdev->devicestatenotify_type)
|
||||
{
|
||||
int i;
|
||||
XDeviceStateNotifyEvent *xdse = (XDeviceStateNotifyEvent *)(xevent);
|
||||
XInputClass *input_class = (XInputClass *)xdse->data;
|
||||
for (i=0; i<xdse->num_classes; i++)
|
||||
{
|
||||
if (input_class->class == ValuatorClass)
|
||||
gdk_input_update_axes (gdkdev, gdkdev->info.num_axes, 0,
|
||||
((XValuatorState *)input_class)->valuators);
|
||||
input_class = (XInputClass *)(((char *)input_class)+input_class->length);
|
||||
}
|
||||
|
||||
GDK_NOTE (EVENTS,
|
||||
g_print ("device state notify:\t\twindow: %ld device: %ld\n",
|
||||
xdse->window,
|
||||
xdse->deviceid));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
if (xevent->type == gdkdev->proximityin_type ||
|
||||
xevent->type == gdkdev->proximityout_type)
|
||||
{
|
||||
|
@ -83,7 +83,7 @@ struct _GdkDevicePrivate
|
||||
|
||||
int buttonpress_type, buttonrelease_type, keypress_type,
|
||||
keyrelease_type, motionnotify_type, proximityin_type,
|
||||
proximityout_type, changenotify_type;
|
||||
proximityout_type, changenotify_type, devicestatenotify_type;
|
||||
|
||||
/* true if we need to select a different set of events, but
|
||||
can't because this is the core pointer */
|
||||
|
Loading…
Reference in New Issue
Block a user