diff options
| author | Eli Zaretskii | 2010-12-09 20:53:17 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2010-12-09 20:53:17 +0200 |
| commit | 65ceb118c42c59b0ff36aeae20ad0f3b53842501 (patch) | |
| tree | b3982a2c9753d3fe14bab87671eb71b7ead248d9 /lisp | |
| parent | 81ced43d179308153dfba3eece877e84c4091dea (diff) | |
| download | emacs-65ceb118c42c59b0ff36aeae20ad0f3b53842501.tar.gz emacs-65ceb118c42c59b0ff36aeae20ad0f3b53842501.zip | |
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) <menu-bar-mode, showhide-tool-bar>: Use
them instead of `nil' and `>', respectively.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/menu-bar.el | 21 |
2 files changed, 26 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d8edf108bd2..8184473d035 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2010-12-09 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * menu-bar.el (menu-bar-frame-for-menubar, menu-bar-positive-p): | ||
| 4 | New functions. | ||
| 5 | (menu-bar-showhide-menu) <menu-bar-mode, showhide-tool-bar>: Use | ||
| 6 | them instead of `nil' and `>', respectively. (Bug#1077) | ||
| 7 | |||
| 1 | 2010-12-09 Stephen Berman <stephen.berman@gmx.net> | 8 | 2010-12-09 Stephen Berman <stephen.berman@gmx.net> |
| 2 | 9 | ||
| 3 | * calendar/diary-lib.el (diary-list-sexp-entries): | 10 | * calendar/diary-lib.el (diary-list-sexp-entries): |
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index d25de5b385c..1f97ea76847 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el | |||
| @@ -980,16 +980,33 @@ mail status in mode line")) | |||
| 980 | :visible (and (display-graphic-p) (fboundp 'x-show-tip)) | 980 | :visible (and (display-graphic-p) (fboundp 'x-show-tip)) |
| 981 | :button (:toggle . tooltip-mode))) | 981 | :button (:toggle . tooltip-mode))) |
| 982 | 982 | ||
| 983 | (defun menu-bar-frame-for-menubar () | ||
| 984 | "Return the frame suitable for updating the menu bar." | ||
| 985 | (or (and (framep menu-updating-frame) | ||
| 986 | menu-updating-frame) | ||
| 987 | (selected-frame))) | ||
| 988 | |||
| 989 | (defun menu-bar-positive-p (val) | ||
| 990 | "Return non-nil iff VAL is a positive number." | ||
| 991 | (and (numberp val) | ||
| 992 | (> val 0))) | ||
| 993 | |||
| 983 | (define-key menu-bar-showhide-menu [menu-bar-mode] | 994 | (define-key menu-bar-showhide-menu [menu-bar-mode] |
| 984 | `(menu-item ,(purecopy "Menu-bar") toggle-menu-bar-mode-from-frame | 995 | `(menu-item ,(purecopy "Menu-bar") toggle-menu-bar-mode-from-frame |
| 985 | :help ,(purecopy "Turn menu-bar on/off") | 996 | :help ,(purecopy "Turn menu-bar on/off") |
| 986 | :button (:toggle . (> (frame-parameter nil 'menu-bar-lines) 0)))) | 997 | :button |
| 998 | (:toggle . (menu-bar-positive-p | ||
| 999 | (frame-parameter (menu-bar-frame-for-menubar) | ||
| 1000 | 'menu-bar-lines))))) | ||
| 987 | 1001 | ||
| 988 | (define-key menu-bar-showhide-menu [showhide-tool-bar] | 1002 | (define-key menu-bar-showhide-menu [showhide-tool-bar] |
| 989 | `(menu-item ,(purecopy "Tool-bar") toggle-tool-bar-mode-from-frame | 1003 | `(menu-item ,(purecopy "Tool-bar") toggle-tool-bar-mode-from-frame |
| 990 | :help ,(purecopy "Turn tool-bar on/off") | 1004 | :help ,(purecopy "Turn tool-bar on/off") |
| 991 | :visible (display-graphic-p) | 1005 | :visible (display-graphic-p) |
| 992 | :button (:toggle . (> (frame-parameter nil 'tool-bar-lines) 0)))) | 1006 | :button |
| 1007 | (:toggle . (menu-bar-positive-p | ||
| 1008 | (frame-parameter (menu-bar-frame-for-menubar) | ||
| 1009 | 'tool-bar-lines))))) | ||
| 993 | 1010 | ||
| 994 | (define-key menu-bar-options-menu [showhide] | 1011 | (define-key menu-bar-options-menu [showhide] |
| 995 | `(menu-item ,(purecopy "Show/Hide") ,menu-bar-showhide-menu)) | 1012 | `(menu-item ,(purecopy "Show/Hide") ,menu-bar-showhide-menu)) |