Wayland stops delivering pointer button events to clients while libinput still receives them
- Dominant language
- Vala
- Stars
- 302
- Forks
- 83
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 7
Description
I'll preface this I've investigated this issue using AI. But I have experienced this issue. And I have ran all the commands to investigate this issue.
### What Happened?
During a normal elementary OS 8.1 Secure Session (Wayland), pointer clicking suddenly stopped working globally.
Both my external mouse and the laptop's built-in touchpad were affected at the same time.
The pointer itself continued to move. Initially normal hover feedback also appeared broken. After some troubleshooting, hover behavior started working again, but clicks still had no effect anywhere in the desktop or applications.
Keyboard input continued to work normally.
While the issue was still active, I tested the input path at two different levels.
First:
```text
sudo libinput debug-events
````
Clicking with both the mouse/touchpad produced normal matching button `pressed` and `released` events.
Then I tested delivery to a native Wayland client:
```text
wev | grep button
```
Clicking with either the mouse or touchpad produced **no button events at all** in `wev`.
So while the problem was occurring:
```text
Physical input
↓
Kernel
↓
libinput
↓
✓ button pressed/released events observed
↓
Gala / Mutter Wayland compositor
↓
Wayland client (`wev`)
↓
✗ no button events received
```
Logging out of the Pantheon session completely and logging back in immediately restored normal clicking.
This appears to be a session-specific failure in pointer-button event delivery between libinput and Wayland clients.
### Steps to Reproduce
I have only experienced this occasionally so far, so I do not yet have reliable reproduction steps.
### Expected Behavior
Pointer button events received by libinput should continue to be delivered to Wayland clients for the lifetime of the session.
A compositor/session state change should not result in pointer movement continuing while all button events stop reaching Wayland clients.
### OS Version
8.x (Circe)
### OS Architecture
amd64 (on most hardwares)
### Session Type
Secure Session (Wayland, This is the default)
### Software Version
Latest release (I have run all updates)
### System Information
* OS: elementary OS 8.1
* Architecture: amd64
* Session: Secure Session / Wayland
* Gala: `8.5.1+r3055+pkg132~ubuntu8.1`
* Mutter: `46.2-1ubuntu0.24.04.16`
* `libmutter-14-0`: `46.2-1ubuntu0.24.04.16`
* `mutter-common`: `46.2-1ubuntu0.24.04.16`
* Kernel: `6.16.12-061612-generic`
* Laptop: Framework Laptop 13 (AMD Ryzen AI 300 Series)
* CPU/GPU: AMD Ryzen AI 9 HX 370 / Radeon 890M
* Display manager: LightDM
External display setup:
* DisplayLink USB dock
* DisplayLink driver: `6.3.0-48`
* EVDI: `1.15.0-193`
* DisplayLink output normally running at 3840x2160@60
The failure remained present after completely disconnecting the dock and all USB devices, so I cannot currently determine whether DisplayLink was involved in triggering the problem.
### Log Output
While the failure was active:
```shell
sudo libinput debug-events
```
Both mouse and touchpad clicks generated normal button press and release events.
```shell
wev | grep button
```
Mouse/touchpad clicks produced no output.
This seems to demonstrate that button events were available at the libinput layer but were not being delivered by the running Wayland compositor to a new Wayland client.
Pointer motion continued to work.
### Recovery Attempts
These did NOT fix the problem:
* Disconnecting all USB devices / DisplayLink dock
* Locking and unlocking the session
* Switching to another VT and back
A complete logout followed by login DID fix it.
No reboot was required.
#### Relevant Gala / Mutter Log Messages
The affected Gala Wayland process had been running since August 24:
```text
io.elementary.gala@wayland.service
Active: active (running) since Mon 2026-08-24 12:30:23 CEST
Main PID: 3145 (gala)
```
The session was running Gala on Mutter 46.2.
During the period around the problem, Gala logged repeated messages such as:
```text
Window manager warning: META_CURRENT_TIME used to choose focus window; focus window may not be correct.
```
and:
```text
Window manager warning: Ping serial ... was reused for window ...
```
These messages also occur at other times, so I do not know whether they are related.
During a lock/unlock attempt performed while troubleshooting the already-broken session, Gala later logged:
```text
Buggy client caused popup to be placed outside of parent window
meta_window_set_stack_position_no_sync:
assertion 'window->stack_position >= 0' failed
Buggy client caused popup to be placed outside of parent window
```
Those messages occurred shortly after that session transition.
I am including them for completeness, but the click problem was already present before this lock/unlock attempt, so I cannot identify these messages as the original cause.
#### Display / Session Activity
The system uses EVDI/DisplayLink.
During troubleshooting and session transitions, the journal contains EVDI display state changes and VT/device ownership changes. However, unplugging the dock while the failure was active did not restore button delivery.
Therefore DisplayLink may be relevant to the original trigger, but there is currently no evidence that it is the direct cause.
#### Other Possibly Unrelated Activity
The journal also contains repeated `iwlwifi` firmware resets around the same period:
```text
iwlwifi: Queue ... is stuck
iwlwifi: Microcode SW error detected. Restarting
iwlwifi: Device error - SW reset
ieee80211 phy0: Hardware restart was requested
```
I currently assume this is unrelated to the pointer issue because libinput continued receiving button events and restarting only the graphical session restored pointer delivery.
### Hardware Info
Framework 13
(AMD Ryzen™ AI 300 Series) - Ryzen™ AI 9 HX 370
UGREEN CM615 USB C Docking Station
### Summary
The strongest diagnostic result seems to be:
```text
libinput button events: YES
Wayland button events in wev: NO
pointer movement: YES
affects mouse + built-in touchpad: YES
logout/login fixes it: YES
```
This appears to isolate the failure to the running Gala/Mutter Wayland compositor/session rather than the physical input devices, kernel input subsystem, libinput, or an individual application.
Please let me know if there are additional Gala/Mutter debug options I can enable or commands I should run if this reproduces.
Contributor guide
Research direction
No source file or test is named. Start by reproducing the session failure and compare `sudo libinput debug-events` with `wev | grep button`, then inspect the Gala/Mutter journal around the failure; done means pointer button events reach Wayland clients without requiring logout and login.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100