]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix bug #1077 with popping new frames from a minibuffer-only frame.
authorEli Zaretskii <eliz@gnu.org>
Thu, 9 Dec 2010 18:53:17 +0000 (20:53 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 9 Dec 2010 18:53:17 +0000 (20:53 +0200)
Do NOT merge with trunk!

 menu-bar.el (menu-bar-frame-for-menubar, menu-bar-positive-p): New functions.
 (menu-bar-showhide-menu) <menu-bar-mode, showhide-tool-bar>: Use
 them instead of `nil' and `>', respectively.

lisp/ChangeLog
lisp/menu-bar.el

index d8edf108bd2c569608842b5f4ef02b76d727765f..8184473d0359033c8a41fc069d75bfb98e4d7529 100644 (file)
@@ -1,3 +1,10 @@
+2010-12-09  Eli Zaretskii  <eliz@gnu.org>
+
+       * menu-bar.el (menu-bar-frame-for-menubar, menu-bar-positive-p):
+       New functions.
+       (menu-bar-showhide-menu) <menu-bar-mode, showhide-tool-bar>: Use
+       them instead of `nil' and `>', respectively.  (Bug#1077)
+
 2010-12-09  Stephen Berman  <stephen.berman@gmx.net>
 
        * calendar/diary-lib.el (diary-list-sexp-entries):
index d25de5b385c6c23769e16fa910aaf4a81b9045f2..1f97ea7684765a42170b704190e57b27d5fce77c 100644 (file)
@@ -980,16 +980,33 @@ mail status in mode line"))
              :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))