The monitor numbers in _NET_WM_FULLSCREEN_MONITORS should follow Xinerama/RandR numbers. However, with xfwm4-4.8.3, this is not the case: When _NET_WM_FULLSCREEN_MONITORS=0,0,0,0 is specified, the client is fullscreen over Xinerama/RandR monitor number 1, and vice versa.
Still an issue, the function clientUpdateFullscreenSize in src/client.c retrieves monitor position/size using the function "gdk_screen_get_monitor_geometry", giving the index from _NET_WM_FULLSCREEN_MONITORS as the "monitor_num" argument. The problem is that function uses the GDK monitor numbering scheme (which seems to consistently label monitors [0, 1, ..., n] from left to right) as opposed to the Xinerama numbering scheme (which seems to always assign "0" to the primary monitor, even if it's the right-most one). As the original bug report states, the window manager should treat the indices specified in _NET_WM_FULLSCREEN_MONITORS as those assigned by Xinerama. The EWHM spec says _NET_WM_FULLSCREEN_MONITORS is a "list of 4 monitor indices indicating the top, bottom, left, and right edges of the window when the fullscreen state is enabled. The indices are from the set returned by the Xinerama extension."
Yes, you are correct, gdk reorders the outputs.
-- GitLab Migration Automatic Message -- This bug has been migrated to xfce.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.xfce.org/xfce/xfwm4/-/issues/94. Please create an account or use an existing account on one of our supported OAuth providers. If you want to fork to submit patches and merge requests please continue reading here: https://docs.xfce.org/contribute/dev/git/start#gitlab_forks_and_merge_requests Also feel free to reach out to us on the mailing list https://mail.xfce.org/mailman/listinfo/xfce4-dev