On DRM backend, with heavy system/compositor load, the surfaces dragging or rotating, the pointer is locked even after releasing all the buttons. Steps to reproduce: 1. Use DRM backend with evdev 2. Run 25 mpv's to stress the system 3. Move or rotate some surfaces Actual result: Grab does not terminate, even after releasing all the buttons. Expected result: The grab should terminate when releasing all the buttons. Under heavy system load, on DRM with evdev backend, the button key press event is processed 2 times, or not at all. This causes the pointer->button_count in compositor.c: notify_button() to randomly overflow to UINT_MAX, or gets stuck in 1 when no button is pressed. Configuration: atk: ATK_2_7_4-3-g689619a cairo: 1.11.2 drm: libdrm-2.4.42-4-g41fc2cc fontconfig: 2.10.91-19-gfb3b410 glib: 2.35.4-59-g82f2ee9 gtk+: 3.7.6-78-g18938b7 kmscon: kmscon-7-27-ge4d2526 libxcb: 1.9 libxkbcommon: xkbcommon-0.2.0-28-g852d920 mesa: snb-magic-14773-g4154ac0 mtdev: e5eb274 pango: 1.32.6-5-g4701908 pixman: pixman-0.28.0-47-g480dd38 wayland: 1.0.1-32-g8f1386f weston: 1.0.0-356-ge7144fd xf86-video-intel: 2.19.0-27-g1c65dd7 xf86-video-wlshm: af6618a xserver: xorg-server-1.12.2-104-g5569c0e
fixed after evdev overflow/sync patches landed
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.