]> source.dussan.org Git - tigervnc.git/commitdiff
Toolbar handling restored.
authorConstantin Kaplinsky <const@tightvnc.com>
Wed, 17 May 2006 09:39:42 +0000 (09:39 +0000)
committerConstantin Kaplinsky <const@tightvnc.com>
Wed, 17 May 2006 09:39:42 +0000 (09:39 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/branches/merge-with-vnc-4.1.1@556 3789f03b-4d11-0410-bbf8-ca57d06f2519

vncviewer/CConn.cxx
vncviewer/DesktopWindow.cxx
vncviewer/DesktopWindow.h

index 2d90730add8c4a6a7b8a35b0da8a33ea7285bbf3..d141e50cc233fcc6a0bc0f4cc77da5d39d8054f7 100644 (file)
@@ -177,10 +177,8 @@ CConn::sysCommand(WPARAM wParam, LPARAM lParam) {
     window->setFullscreen(options.fullScreen);
     return true;
   case IDM_SHOW_TOOLBAR:
-    options.showToolbar = !options.showToolbar;
+    options.showToolbar = !window->isToolbarEnabled();
     window->setShowToolbar(options.showToolbar);
-    // FIXME: Update menu in DesktopWindow?
-    // FIXME: Actually show or hide the toolbar?
     return true;
   case IDM_CTRL_KEY:
     window->kbd.keyEvent(this, VK_CONTROL, 0, !window->kbd.keyPressed(VK_CONTROL));
@@ -283,8 +281,12 @@ CConn::refreshMenu(bool enableSysItems) {
   // Set the menu fullscreen option tick
   CheckMenuItem(menu, IDM_FULLSCREEN, (window->isFullscreen() ? MF_CHECKED : 0) | MF_BYCOMMAND);
 
+  // Set the menu toolbar option tick
+  int toolbarFlags = window->isToolbarEnabled() ? MF_CHECKED : 0;
+  CheckMenuItem(menu, IDM_SHOW_TOOLBAR, MF_BYCOMMAND | toolbarFlags);
+
   // In the full-screen mode, "Show toolbar" should be grayed.
-  int toolbarFlags = options.fullScreen ? MF_GRAYED : MF_ENABLED;
+  toolbarFlags = window->isFullscreen() ? MF_GRAYED : MF_ENABLED;
   EnableMenuItem(menu, IDM_SHOW_TOOLBAR, MF_BYCOMMAND | toolbarFlags);
 }
 
index acddf45ef01356c4c8f3c3d7aa19335b742985cb..47ddf7d819e1b7411d6868576af135bfe455b5ac 100644 (file)
@@ -177,7 +177,7 @@ FrameClass frameClass;
 
 DesktopWindow::DesktopWindow(Callback* cb) 
   : buffer(0),
-    showToolbar(true),
+    showToolbar(false),
     client_size(0, 0, 16, 16), window_size(0, 0, 32, 32),
     cursorVisible(false), cursorAvailable(false), cursorInBuffer(false),
     systemCursorVisible(true), trackingMouseLeave(false),
@@ -255,7 +255,7 @@ void DesktopWindow::setFullscreen(bool fs) {
     MonitorInfo mi(handle);
 
     // Hide the toolbar
-    if (showToolbar)
+    if (tb.isVisible())
       tb.hide();
     SetWindowLong(frameHandle, GWL_EXSTYLE, 0);
 
@@ -294,6 +294,17 @@ void DesktopWindow::setFullscreen(bool fs) {
   setViewportOffset(scrolloffset);
 }
 
+void DesktopWindow::setShowToolbar(bool st)
+{
+  showToolbar = st;
+
+  if (showToolbar && !tb.isVisible()) {
+    tb.show();
+  } else if (!showToolbar && tb.isVisible()) {
+    tb.hide();
+  }
+}
+
 void DesktopWindow::setDisableWinKeys(bool dwk) {
   // Enable low-level event hooking, so we get special keys directly
   if (dwk)
index dd1bcdca31aa895f7c37a804fb0576de05696e3b..d54cd5f7a4f941192b14d0bf9c3571ba2b028804 100644 (file)
@@ -87,14 +87,14 @@ namespace rfb {
       void setCursor(int w, int h, const Point& hotspot, void* data, void* mask);
       void showCursor() { showLocalCursor(); }
 
-      // - Set whether to show the toolbar
-      // FIXME: Actually show/hide the toolbar.
-      void setShowToolbar(bool st) { showToolbar = st; }
-
       // - Set the window fullscreen / determine whether it is fullscreen
       void setFullscreen(bool fs);
       bool isFullscreen() { return fullscreenActive; }
 
+      // - Set/get the toolbar's state
+      void setShowToolbar(bool st);
+      bool isToolbarEnabled() { return showToolbar; }
+
       // - Set whether to disable special Windows keys & pass them straight to server
       void setDisableWinKeys(bool dwk);