# HG changeset patch # User Eli Zaretskii # Date 1291920797 -7200 # Node ID c8a80ac35b9af561fd1038e6fb065c0868e7fab4 # Parent 89658283a80cb2ba7525da37b26b49f099642759 Fix bug #1077 with popping new frames from a minibuffer-only frame. Do NOT merge with trunk! menu-bar.el (menu-bar-frame-for-menubar, menu-bar-positive-p): New functions. (menu-bar-showhide-menu) : Use them instead of `nil' and `>', respectively. diff -r 89658283a80c -r c8a80ac35b9a lisp/ChangeLog --- a/lisp/ChangeLog Wed Dec 08 17:50:08 2010 -0800 +++ b/lisp/ChangeLog Thu Dec 09 20:53:17 2010 +0200 @@ -1,3 +1,10 @@ +2010-12-09 Eli Zaretskii + + * menu-bar.el (menu-bar-frame-for-menubar, menu-bar-positive-p): + New functions. + (menu-bar-showhide-menu) : Use + them instead of `nil' and `>', respectively. (Bug#1077) + 2010-12-09 Stephen Berman * calendar/diary-lib.el (diary-list-sexp-entries): diff -r 89658283a80c -r c8a80ac35b9a lisp/menu-bar.el --- a/lisp/menu-bar.el Wed Dec 08 17:50:08 2010 -0800 +++ b/lisp/menu-bar.el Thu Dec 09 20:53:17 2010 +0200 @@ -980,16 +980,33 @@ :visible (and (display-graphic-p) (fboundp 'x-show-tip)) :button (:toggle . tooltip-mode))) +(defun menu-bar-frame-for-menubar () + "Return the frame suitable for updating the menu bar." + (or (and (framep menu-updating-frame) + menu-updating-frame) + (selected-frame))) + +(defun menu-bar-positive-p (val) + "Return non-nil iff VAL is a positive number." + (and (numberp val) + (> val 0))) + (define-key menu-bar-showhide-menu [menu-bar-mode] `(menu-item ,(purecopy "Menu-bar") toggle-menu-bar-mode-from-frame :help ,(purecopy "Turn menu-bar on/off") - :button (:toggle . (> (frame-parameter nil 'menu-bar-lines) 0)))) + :button + (:toggle . (menu-bar-positive-p + (frame-parameter (menu-bar-frame-for-menubar) + 'menu-bar-lines))))) (define-key menu-bar-showhide-menu [showhide-tool-bar] `(menu-item ,(purecopy "Tool-bar") toggle-tool-bar-mode-from-frame :help ,(purecopy "Turn tool-bar on/off") :visible (display-graphic-p) - :button (:toggle . (> (frame-parameter nil 'tool-bar-lines) 0)))) + :button + (:toggle . (menu-bar-positive-p + (frame-parameter (menu-bar-frame-for-menubar) + 'tool-bar-lines))))) (define-key menu-bar-options-menu [showhide] `(menu-item ,(purecopy "Show/Hide") ,menu-bar-showhide-menu))