Moving window using touchscreen cause unrecoverable interface freeze on Wayland and jump on XORG
Affected version
- Arch Linux current amd64
- Gnome 44.3 (Surface), Gnome 44.2 (Asus)
Machine specs:
- Microsoft Surface Go 2 (Intel m3, 8gb ram, 1920x1280, mainline kernel 6.4.2 and surface kernel 6.3.9)
- Asus T100TAF (Atom Atom Z3735F, 2gb ram, 1280x800, mainline kernel 6.3.8)
Bug summary
When moving a window using the touchscreen (touch down on title bar and drag):
- On Wayland: Complete interface freeze
- On Xorg: Unable to move window
(see the attached screencasts for some hints on what may be going on)
When doing the exact same action with a mouse, it works (in fact, the only way to unfreeze a system without a keyboard attached is to pair a BT mouse and move it).
Note: if after a complete interface freeze I log in via ssh and kill the application, the interface returns responsive and I can start the same or other apps and touch the title bar without experiencing the freeze. The issue is gone and no freeze is experienced until the tablet is restarted.
Steps to reproduce
Open a window that opens non-maximized (e.g. Spotify). Touch the title bar and, without lifting the finger, drag it.
What happened
On Wayland
The window doesn't move. After lifting the finger and touching others screen areas (the notification area, the Activities button etc), one can notice the interface is frozen. Moving an actual connected mouse (no need to click) makes the window move and un-freeze the interface.
On Xorg
The window doesn't move. After lifting the finger and touching another part of the screen, the window is redrawn instantly to the touched point.
What did you expect to happen
The window should move following the finger until it is lifted from the screen (similar to when clicking and dragging with the mouse). The interface should not freeze, instead should keep responding to touch events.
Observations
On Wayland
- If the gesture is a tap rapidly followed by a touchdown and drag, the window still don't move, but the interface does NOT freeze.
- I can move a mouse (no need to click) to un-freeze the interface. When moved, it appears like something is keeping the button clicked (the pointer is displayed as the "move action" pointer and the window moves. Once clicked to stop moving the window, the system is again responsive.
- The screen rotation (using the gyroscope) continues to work even if the interface is not responding. I can ssh into the system and the system is overall running fine.
- The touch event seems to never end until a mouse click is performed. The drag event seems to not be registered.
- Once the interface is frozen, there's a little delay between a real mouse movement and the window movement
- When using the system on a tablet, without keyboard or mouse connected, there's no way to recover from the issue: the system must be force shut down pressing the power button for 15 seconds.
- The power and volume buttons stop responding until the interface is unstuck using the mouse
- If I wait for the suspend timeout, the computer goes to suspend regularly. If I wake it with the power button, I can insert my password, but once unlocked, the desktop interface is still stuck.
On Xorg
- No freeze on Xorg
- The touch event seems to never end until another touch down is performed
Relevant logs, screenshots, screencasts etc.
Screencasts
Please see this recordings:
- Surface Go 2, Wayland: https://peertube.uno/w/gNqNahKxGhJZHeaAWKKiSS
- Asus T100TAF, Wayland: https://peertube.uno/w/kaubrKgCks5oSSiPNyocPj
- Asus T100TAF, XORG: https://peertube.uno/w/cMAhCuYtPjUkvitDcRcniP
Logs
journalctl -b 0
:
lug 09 15:19:59 tuxface systemd[803]: Started Application launched by gnome-shell.
lug 09 15:19:59 tuxface systemd[803]: Started app-flatpak-com.spotify.Client-11789.scope.
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11809]: /app/extra/bin/spotify: /usr/lib/x86_64-linux-gnu/libcurl.so.4: no version information available (required >
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11809]: [spotifywm] attached to spotify
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11814]: /app/extra/share/spotify/spotify: /usr/lib/x86_64-linux-gnu/libcurl.so.4: no version information available >
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11815]: /app/extra/share/spotify/spotify: /usr/lib/x86_64-linux-gnu/libcurl.so.4: no version information available >
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11814]: [spotifywm] attached to spotify
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11815]: [spotifywm] attached to spotify
lug 09 15:19:59 tuxface spotify[11809]: Failed to load module "canberra-gtk-module"
lug 09 15:19:59 tuxface spotify[11809]: Failed to load module "canberra-gtk-module"
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11809]: [spotifywm] spotify window e00004 found
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11809]: [spotifywm] spotify window c00003 found
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11862]: /proc/self/exe: /usr/lib/x86_64-linux-gnu/libcurl.so.4: no version information available (required by /proc>
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11862]: [spotifywm] attached to spotify
lug 09 15:19:59 tuxface com.spotify.Client.desktop[11834]: [spotifywm] spotify window 1600008 found
Note: libcanberra is already installed.
Running Geary from command line with WAYLAND_DEBUG=1 geary > gnome-mutter-issue-2897-touch-freeze-title-bar.txt 2>&1
Log file --> gnome-mutter-issue-2897-touch-freeze-title-bar.txt