godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
91.6k stars 21.28k forks source link

Unable to interact with window decorations on GNOME 46.1 Wayland with graphic tablet #91921

Open Vovkiv opened 6 months ago

Vovkiv commented 6 months ago

Tested versions

Reproducably: v4.3.dev6.official [64520fe67], dev5 has same issue, so maybe all versions that has graphic tablet + wayland support are affected.

System information

Godot v4.3.dev6 - Fedora Linux 40.20240512.0 (Silverblue) - Wayland - Vulkan (Forward+) - dedicated AMD Radeon RX 570 Series (RADV POLARIS10) () - Intel(R) Core(TM) i3-10100F CPU @ 3.60GHz (8 Threads)

Issue description

Editor with prefer_wayland = true, GNOME 46.1 session with Wayland. When I use my pen and point to any part of window decoration (like title bar, edges of window to resize window), nothing happens and terminal get spammed with message: platform/linuxbsd/wayland/wayland_thread.cpp:2334 - Parameter "ws" is null

Here some demostration:

wayland.webm

Screen capture didn't captured cursor, but the moment I put cursor on title bar, error started appearing.

Same with borders:

wayland2

Using any other input method, such as mouse or touchpad, works as expected, so this should be tablet specific.

Steps to reproduce

As far I can tell, this started happening when I moved to Fedora Silverblue 40, where GNOME was updated from 45 to 46, which might introduced this issue. Since this happens with dev5 as well, which was working fine on Fedora 39, this issue probably lies somewhere in GNOME/Fedora, and not regression from Godot update, but I can't tell.

Minimal reproduction project (MRP)

Happens with editor and exported games, so not project specific.

Riteo commented 5 months ago

Thank you for your report!

I'm not sure if the interactivity part is something we can fix directly, as libdecor handles CSDs (no idea if mutter emulates the mouse or something), but the error spam is definitely an issue. The fix should be trivial.

I also have some other mutter problems in queue so I think I'll make a big batch of fixes once I find some time to test everything.

Vovkiv commented 2 months ago

Kind of quick update: Today, in Fedora 40, gnome-shell got updated to 46.5, which fixed bunch of issues with graphic tablets.

kinda_works.webm

(v4.4.dev2.official [97ef3c837]) Particularly, as shown on video, now it become possible to interact with decorations with prefer_wayland = true. But there still seems to be some bugs with it, for example, interaction with decorations works once every 2 clicks/touches, as it might be visible from video. Seems this is issue with libdecor or something, since same thing happens with other programs.

As for running game, with display/display_server/driver.linuxbsd = "wayland", interaction with decorations still impossible at all.

running_game.webm