]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the curre...
authorKaroly Lorentey <lorentey@elte.hu>
Sun, 26 Mar 2006 14:20:01 +0000 (14:20 +0000)
committerKaroly Lorentey <lorentey@elte.hu>
Sun, 26 Mar 2006 14:20:01 +0000 (14:20 +0000)
* lisp/tool-bar.el (toggle-tool-bar-mode-from-frame): New function.

* lisp/menu-bar.el (toggle-menu-bar-mode-from-frame): New function.
  (menu-bar-showhide-menu): Use them to change "Menu-bar" and
  "Tool-bar" toggles to reflect the state of the current frame.

git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-537

README.multi-tty
lisp/menu-bar.el
lisp/tool-bar.el

index 2ac27bafe55050be1a840c890f5b45b07a12004f..442c4c92fd2ae6d00464857109f7724ad04074d2 100644 (file)
@@ -404,17 +404,6 @@ is probably not very interesting for anyone else.)
 THINGS TO DO
 ------------
 
-** `tool-bar-mode', `scroll-bar-mode', `menu-bar-mode' and
-   'fringe-mode' are modes global to the entire Emacs session, not
-   just a single frame or a single terminal.  This means that their
-   status sometimes differs from what's actually displayed on the
-   screen.  As a consequence, the Options | Show/Hide menu sometimes
-   shows incorrect status, and you have to select an option twice for
-   it to have any visible effect on the current frame.
-
-   Change Emacs so that the status of the items in the Options |
-   Show/Hide menu correspond to the current frame.
-
 ** emacsclient -t on the console does not work after su:
 
        # su lorentey
@@ -1485,5 +1474,18 @@ DIARY OF CHANGES
 
    (Done in patch-500.)
 
+-- `tool-bar-mode', `scroll-bar-mode', `menu-bar-mode' and
+   'fringe-mode' are modes global to the entire Emacs session, not
+   just a single frame or a single terminal.  This means that their
+   status sometimes differs from what's actually displayed on the
+   screen.  As a consequence, the Options | Show/Hide menu sometimes
+   shows incorrect status, and you have to select an option twice for
+   it to have any visible effect on the current frame.
+
+   Change Emacs so that the status of the items in the Options |
+   Show/Hide menu correspond to the current frame.
+
+   (Done in patch-537.)
+
 ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d
 
index 75d68d0baad606faa3a748ae37156f1bd8babe59..a9987d589fd7593d0173c64b01fa0937682842fa 100644 (file)
@@ -935,15 +935,15 @@ mail status in mode line"))
        :button `(:toggle . tooltip-mode)))
 
 (define-key menu-bar-showhide-menu [menu-bar-mode]
-  '(menu-item "Menu-bar" menu-bar-mode
+  '(menu-item "Menu-bar" toggle-menu-bar-mode-from-frame
              :help "Toggle menu-bar on/off"
-             :button (:toggle . menu-bar-mode)))
+             :button (:toggle . (> (frame-parameter nil 'menu-bar-lines) 0))))
 
 (define-key menu-bar-showhide-menu [showhide-tool-bar]
-  (list 'menu-item "Tool-bar" 'tool-bar-mode
-       :help "Turn tool-bar on/off"
+  (list 'menu-item "Tool-bar" 'toggle-tool-bar-mode-from-frame
+       :help "Toggle tool-bar on/off"
        :visible `(display-graphic-p)
-       :button `(:toggle . tool-bar-mode)))
+       :button `(:toggle . (> (frame-parameter nil 'tool-bar-lines) 0))))
 
 (define-key menu-bar-options-menu [showhide]
   (list 'menu-item "Show/Hide" menu-bar-showhide-menu
@@ -1778,6 +1778,14 @@ turn on menu bars; otherwise, turn off menu bars."
                         "Menu-bar mode disabled.  Use M-x menu-bar-mode to make the menu bar appear."))
   menu-bar-mode)
 
+(defun toggle-menu-bar-mode-from-frame (&optional arg)
+  "Toggle menu bar on or off, based on the status of the current frame.
+See `menu-bar-mode' for more information."
+  (interactive (list (or current-prefix-arg 'toggle)))
+  (if (eq arg 'toggle)
+      (menu-bar-mode (if (> (frame-parameter nil 'menu-bar-lines) 0) 0 1))
+    (menu-bar-mode arg)))
+
 (provide 'menu-bar)
 
 ;;; arch-tag: 6e6a3c22-4ec4-4d3d-8190-583f8ef94ced
index be552854b13262a938cdc5fe856f18bf20683648..023b90af5d9355e641302b556ae66f1cc5a1ce13 100644 (file)
@@ -61,6 +61,16 @@ conveniently adding tool bar items."
                (display-graphic-p))
           (tool-bar-setup))))
 
+;;;###autoload
+;; Used in the Show/Hide menu, to have the toggle reflect the current frame.
+(defun toggle-tool-bar-mode-from-frame (&optional arg)
+  "Toggle tool bar on or off, based on the status of the current frame.
+See `tool-bar-mode' for more information."
+  (interactive (list (or current-prefix-arg 'toggle)))
+  (if (eq arg 'toggle)
+      (tool-bar-mode (if (> (frame-parameter nil 'tool-bar-lines) 0) 0 1))
+    (tool-bar-mode arg)))
+
 ;;;###autoload
 ;; We want to pretend the toolbar by standard is on, as this will make
 ;; customize consider disabling the toolbar a customization, and save