1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-02 11:21:42 +00:00

Fix tool-bar and menu-bar toggles in Show/Hide menu to reflect the state of the current frame.

* 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
This commit is contained in:
Karoly Lorentey 2006-03-26 14:20:01 +00:00
parent 095fe28140
commit 6a5af08f8d
3 changed files with 36 additions and 16 deletions

View 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

View 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

View 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