mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-01-26 17:50:31 +01:00
dix: set the valuator mask to ensure XI 1.x events have data
XI 1.x only allows for first + num valuators, so if a device sends data for valuators 0 and 2+ only (i.e. valuator 1 is missing) we still need to get the data for that from somewhere. XI 1.x uses the hack of an unset valuator mask to get the right coordinates, i.e. we set the value but don't set the mask for it so XI2 events have the right mask. For an absolute device in relative mode, this broke inb28a1af55c, the value was now always 0. This wasn't visible on the cursor, only in an XI 1.x client. The GIMP e.g. sees jumps to x/0 every few events. Drop the condition introduced inb28a1af55c, data in valuators is always absolute, regardless of the mode. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit3d87566310)
This commit is contained in:
parent
ef54bd89b1
commit
0857f3c72d
1 changed files with 1 additions and 1 deletions
|
|
@ -239,7 +239,7 @@ set_valuators(DeviceIntPtr dev, DeviceEvent *event, ValuatorMask *mask)
|
|||
SetBit(event->valuators.mode, i);
|
||||
event->valuators.data[i] = valuator_mask_get_double(mask, i);
|
||||
}
|
||||
else if (valuator_get_mode(dev, i) == Absolute)
|
||||
else
|
||||
event->valuators.data[i] = dev->valuator->axisVal[i];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue