* 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
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
(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
: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
"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
(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