summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Vigerlöf <Magnus.Vigerlof@ipbo.se>2008-02-02 22:44:31 +0100
committerMagnus Vigerlöf <Magnus.Vigerlof@ipbo.se>2008-02-05 21:12:52 +0100
commit12e532403210c15a25200ef448bfe9701735ab20 (patch)
tree7fca437629d94b6a734918f442eefb11d58b1103
parent41991fb991313202e8e6b513fe928ba14f8fcb87 (diff)
dix: Always add valuator information if present
Send valuator information for all event types, not only for MotionEvents and absolute button events.
-rw-r--r--dix/getevents.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/dix/getevents.c b/dix/getevents.c
index 12cb950b2..94cbd1553 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -522,15 +522,12 @@ _X_EXPORT int
GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons,
int flags, int first_valuator, int num_valuators,
int *valuators) {
int num_events = 0, final_valuator = 0;
CARD32 ms = 0;
deviceKeyButtonPointer *kbp = NULL;
- /* Thanks to a broken lib, we _always_ have to chase DeviceMotionNotifies
- * with DeviceValuators. */
- Bool sendValuators = (type == MotionNotify || flags & POINTER_ABSOLUTE);
DeviceIntPtr cp = inputInfo.pointer;
int x = 0, y = 0;
Bool coreOnly = (pDev == inputInfo.pointer);
/* Sanity checks. */
if (type != MotionNotify && type != ButtonPress && type != ButtonRelease)
@@ -550,13 +547,13 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons,
num_events = 1;
if (type == MotionNotify && num_valuators <= 0)
return 0;
/* Do we need to send a DeviceValuator event? */
- if (!coreOnly && sendValuators) {
+ if (!coreOnly && num_valuators) {
if ((((num_valuators - 1) / 6) + 1) > MAX_VALUATOR_EVENTS)
num_valuators = MAX_VALUATOR_EVENTS * 6;
num_events += ((num_valuators - 1) / 6) + 1;
}
final_valuator = num_valuators + first_valuator;
@@ -681,13 +678,13 @@ GetPointerEvents(xEvent *events, DeviceIntPtr pDev, int type, int buttons,
}
kbp->root_x = x;
kbp->root_y = y;
events++;
- if (sendValuators) {
+ if (num_valuators) {
kbp->deviceid |= MORE_EVENTS;
clipValuators(pDev, first_valuator, num_valuators, valuators);
events = getValuatorEvents(events, pDev, first_valuator,
num_valuators, valuators);
}
}