]> source.dussan.org Git - tigervnc.git/commitdiff
Make sure we do an initial resize
authorPierre Ossman <ossman@cendio.se>
Tue, 11 Nov 2014 12:59:01 +0000 (13:59 +0100)
committerPierre Ossman <ossman@cendio.se>
Tue, 11 Nov 2014 12:59:01 +0000 (13:59 +0100)
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.

vncviewer/DesktopWindow.cxx

index 3579618eed29baf9fc61208ee6093d39e07ed763..423d2df311f665026013a21d5d0a0be0f117396c 100644 (file)
@@ -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());
+  }
 }