mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-01-03 07:00:10 +01:00
xwayland: Ensure pointer for gestures has buttons
X11 clients tend to assume that pointers have buttons. This
assumption means they often fail to handle the X error that
is generated when querying the button mapping of a pointer
device that lacks buttons.
This failure to handle the X error leads to those client
applications to abruptly exit.
This commit assigns vestigial buttons to the gesture pointer
device for the sole purpose of backward compatibility with
legacy X11 clients.
That technique is already employed for a different pointer,
the relative pointer device, for similar reasons, so this
just makes the legacy client compatibility more complete.
See https://gitlab.gnome.org/GNOME/mutter/-/issues/2353
(cherry picked from commit 456b0e86bb)
This commit is contained in:
parent
4f16a3f0bf
commit
d755da587f
1 changed files with 7 additions and 0 deletions
|
|
@ -313,6 +313,13 @@ xwl_pointer_proc_pointer_gestures(DeviceIntPtr device, int what)
|
|||
axes_labels[0] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_X);
|
||||
axes_labels[1] = XIGetKnownProperty(AXIS_LABEL_PROP_REL_Y);
|
||||
|
||||
/*
|
||||
* We'll never send buttons, but XGetPointerMapping might in certain
|
||||
* situations make the client think we have no buttons.
|
||||
*/
|
||||
if (!init_pointer_buttons(device))
|
||||
return BadValue;
|
||||
|
||||
if (!InitValuatorClassDeviceStruct(device, NAXES, axes_labels,
|
||||
GetMotionHistorySize(), Relative))
|
||||
return BadValue;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue