From: Gabriel Ivăncescu gabrielopcode@gmail.com
It was incorrect, sorry about that. The issue was weirder in a different place (MWM_FUNC_RESIZE not set before setting fullscreen). I added a comment to clarify it for the future.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56149 Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/winex11.drv/desktop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/winex11.drv/desktop.c b/dlls/winex11.drv/desktop.c index fcb6ba2faf5..12c565c3f2e 100644 --- a/dlls/winex11.drv/desktop.c +++ b/dlls/winex11.drv/desktop.c @@ -107,7 +107,7 @@ static void update_desktop_fullscreen( unsigned int width, unsigned int height) if (!display || !is_virtual_desktop()) return;
xev.xclient.type = ClientMessage; - xev.xclient.window = DefaultRootWindow(display); + xev.xclient.window = root_window; /* virtual desktop */ xev.xclient.message_type = x11drv_atom(_NET_WM_STATE); xev.xclient.serial = 0; xev.xclient.display = display;
From: Gabriel Ivăncescu gabrielopcode@gmail.com
Same workaround as used in is_window_resizable, except it's on a different code path. This also affects other WMs (e.g. Kwin, compiz).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56149 Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/winex11.drv/window.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 51125065958..f5f2dd03662 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -747,9 +747,13 @@ static void set_mwm_hints( struct x11drv_win_data *data, UINT style, UINT ex_sty
if (data->hwnd == NtUserGetDesktopWindow()) { - if (is_desktop_fullscreen()) mwm_hints.decorations = 0; - else mwm_hints.decorations = MWM_DECOR_TITLE | MWM_DECOR_BORDER | MWM_DECOR_MENU | MWM_DECOR_MINIMIZE; mwm_hints.functions = MWM_FUNC_MOVE | MWM_FUNC_MINIMIZE | MWM_FUNC_CLOSE; + if (is_desktop_fullscreen()) + { + mwm_hints.decorations = 0; + mwm_hints.functions |= MWM_FUNC_RESIZE; /* some WMs need this to make it fullscreen */ + } + else mwm_hints.decorations = MWM_DECOR_TITLE | MWM_DECOR_BORDER | MWM_DECOR_MENU | MWM_DECOR_MINIMIZE; } else {