]> source.dussan.org Git - tigervnc.git/commitdiff
Fixed the bug with the main window resizing (don't take
authorgeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Sat, 10 Jun 2006 11:47:22 +0000 (11:47 +0000)
committergeorge82 <george82@3789f03b-4d11-0410-bbf8-ca57d06f2519>
Sat, 10 Jun 2006 11:47:22 +0000 (11:47 +0000)
the toolbar height into calculation of the main window
size).

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@636 3789f03b-4d11-0410-bbf8-ca57d06f2519

win/vncviewer/CConn.cxx
win/vncviewer/DesktopWindow.cxx

index bfac47685dd2f3f0e05d0a9f77225e22dc7d43b9..9f597ed0698534ebd92280b8f16ba9153a15d9c6 100644 (file)
@@ -611,9 +611,9 @@ void CConn::serverInit() {
 
   // Show the window
   window = new DesktopWindow(this);
+  applyOptions(options);
   window->setName(cp.name());
   window->setSize(cp.width, cp.height);
-  applyOptions(options);
 
   // Save the server's current format
   serverDefaultPF = cp.pf();
index fcf829f9b8119f7aa2e34dd22f7cdee80b1f9943..d4bc3e76cdf294d6b2622c704428a8644e35367c 100644 (file)
@@ -301,12 +301,21 @@ void DesktopWindow::setFullscreen(bool fs) {
 void DesktopWindow::setShowToolbar(bool st)
 {
   showToolbar = st;
+  RECT r;
+  GetWindowRect(handle, &r);
+  bool maximized = GetWindowLong(handle, GWL_STYLE) & WS_MAXIMIZE;
 
-  if (showToolbar && !tb.isVisible() && !fullscreenActive) {
+  if (showToolbar && !tb.isVisible()) {
     tb.show();
+    if (!maximized) r.bottom += tb.getHeight();
   } else if (!showToolbar && tb.isVisible()) {
     tb.hide();
+    if (!maximized) r.bottom -= tb.getHeight();
   }
+  // Resize the chiled windows even if the parent window size 
+  // has not been changed (the main window is maximized)
+  if (maximized) SendMessage(handle, WM_SIZE, 0, 0);
+  else SetWindowPos(handle, NULL, 0, 0, r.right-r.left, r.bottom-r.top, SWP_NOMOVE | SWP_NOZORDER);
 }
 
 void DesktopWindow::setDisableWinKeys(bool dwk) {