From: Pierre Ossman Date: Tue, 11 Nov 2014 12:59:01 +0000 (+0100) Subject: Make sure we do an initial resize X-Git-Tag: v1.3.90~10 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=bad31c2fb8503554b28966e8d40715e269088ba0;p=tigervnc.git Make sure we do an initial resize The local window manager might give us a window of a different size than the one we request. Make sure that the remote resize setting gets respected even in this case. --- diff --git a/vncviewer/DesktopWindow.cxx b/vncviewer/DesktopWindow.cxx index 3579618e..423d2df3 100644 --- a/vncviewer/DesktopWindow.cxx +++ b/vncviewer/DesktopWindow.cxx @@ -658,12 +658,20 @@ void DesktopWindow::maximizeWindow() void DesktopWindow::handleDesktopSize() { - int width, height; + if (desktopSize.hasBeenSet()) { + int width, height; - if (sscanf(desktopSize.getValueStr(), "%dx%d", &width, &height) != 2) - return; + // An explicit size has been requested + + if (sscanf(desktopSize.getValueStr(), "%dx%d", &width, &height) != 2) + return; - remoteResize(width, height); + remoteResize(width, height); + } else if (::remoteResize) { + // No explicit size, but remote resizing is on so make sure it + // matches whatever size the window ended up being + remoteResize(w(), h()); + } }