GNOME Bugzilla – Bug 783709
xdg_shell set_fullscreen() output setting is misinterpreted sometimes
Last modified: 2021-07-05 13:51:58 UTC
I'm not quite sure what the exact conditions are, but zxdg_toplevel_v6::set_fullscreen(output) sometimes ignores the output parameter and just places the surface on the primary monitor. I've created a small demo based on weston-simple-egl from Git master where this always happens (for me). It's attached. It's probably simplest if you replace the weston simple-egl.c with this and build it in the weston source tree. I'm sorry for the dependency, but it was just the quickest way to get a demo for this bug since writing a Wayland xdg_shell fullscreen demo client from scratch is quite some effort. It's patched in that you can specify an output number with "-o". So e.g. "./weston-simple-egl -f -o 1" will put the surface on the second monitor (in global interface enumeration order). The problem is in line 895. It just sets off another set_fullscreen request on the same output after initializing EGL and stuff. If you comment it out, it seems to always work. If you leave it in, it seems to always fail (i.e. surface appears on the wrong output). For reference, it always works no matter if the line is in or out on weston. And I'm writing this bug report because I am hitting this problem in a real-world application. Hope this is somehow understandable :-)
Created attachment 353626 [details] Patched weston simple-egl.c demo
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/mutter/-/issues/ Thank you for your understanding and your help.