Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions winit-x11/src/event_loop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1188,9 +1188,15 @@ impl Device {
let info = unsafe { &*(class_ptr as *const ffi::XIValuatorClassInfo) };
let atom = info.label as xproto::Atom;

if atom == atoms[ABS_X]
|| atom == atoms[ABS_Y]
|| atom == atoms[ABS_PRESSURE]
// Absolute X/Y axes alone do not identify a stylus:
// emulated pointing devices in virtual machines (the
// QEMU/VMware/VirtualBox USB tablets, and thus any
// desktop accessed through SPICE or similar viewers)
// expose Abs X/Y without pressure or tilt. Treating them
// as pens makes the mouse-only event filters drop all
// their motion and button input. Only pressure and tilt
// axes indicate actual stylus hardware.
if atom == atoms[ABS_PRESSURE]
|| atom == atoms[ABS_TILT_X]
|| atom == atoms[ABS_TILT_Y]
{
Expand Down
4 changes: 4 additions & 0 deletions winit/src/changelog/unreleased.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,10 @@ changelog entry.
- On Windows, fix getting the window's DPI internally leaks `HDC` handles.
Also only call `GetDC` when on < Windows 8.1 which improves its performance.
- On Redox, handle `EINTR` when reading from `event_socket` instead of panicking.
- On X11, fix all pointer input being dropped for absolute pointing devices
without pressure or tilt axes, such as the emulated tablets of
QEMU/VMware/VirtualBox virtual machines and SPICE/VDI viewers. These were
misclassified as pens, whose events the motion/button handlers discard.
- On Wayland, switch from using the `ahash` hashing algorithm to `foldhash`.
- On macOS, fix borderless game presentation options not sticking after switching spaces.
- On macOS, fix IME being locked on (regardless of requests to disable) after being enabled once.
Expand Down
Loading