winex11.drv: Set _NET_WM_FULLSCREEN_MONITORS only when necessary.
commit70c9239cb2eef696eea109f3f8e7a58f80cd3823
authorZhiyi Zhang <zzhang@codeweavers.com>
Mon, 14 Aug 2023 09:17:05 +0000 (14 17:17 +0800)
committerAlexandre Julliard <julliard@winehq.org>
Wed, 11 Oct 2023 18:29:49 +0000 (11 20:29 +0200)
treee9b2345b8b5d8de39c3277241cc0e975c092bd86
parent10a0a8eabc5882bf045ca08d4fc4768533e9a8dc
winex11.drv: Set _NET_WM_FULLSCREEN_MONITORS only when necessary.

If _NET_WM_FULLSCREEN_MONITORS is set then the property needs to be updated because it can't
be deleted by sending a _NET_WM_FULLSCREEN_MONITORS client message to the root window
according to the wm-spec version 1.5. Having the window spanning more than two monitors also
needs the property set. In other cases, _NET_WM_FULLSCREEN_MONITORS doesn't need to be set.
What's more, setting _NET_WM_FULLSCREEN_MONITORS adds a constraint on Mutter so that such a
window can't be moved to another monitor by using the Shift+Super+Up/Down/Left/Right
shortcut. So the property should be added only when necessary.
dlls/winex11.drv/window.c
dlls/winex11.drv/x11drv.h