]> code.delx.au - gnu-emacs/blobdiff - lisp/menu-bar.el
* lisp/mouse.el (mouse-drag-track): Always deactivate the mark before
[gnu-emacs] / lisp / menu-bar.el
index 75814fb7f677911382b89df496ce71579ecbdfc0..024e2237cae0eb640d8bc57f0f2fe2a9db49c2c7 100644 (file)
@@ -1,6 +1,6 @@
 ;;; menu-bar.el --- define a default menu bar
 
-;; Copyright (C) 1993-1995, 2000-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 2000-2013 Free Software Foundation, Inc.
 
 ;; Author: RMS
 ;; Maintainer: FSF
@@ -637,11 +637,11 @@ FNAME is the minor mode's name (variable and function).
 DOC is the text to use for the menu entry.
 HELP is the text to use for the tooltip.
 PROPS are additional properties."
-  `(list 'menu-item ,doc ',fname
-        ,@(mapcar (lambda (p) (list 'quote p)) props)
-        :help ,help
-        :button '(:toggle . (and (default-boundp ',fname)
-                                 (default-value ',fname)))))
+  `'(menu-item ,doc ,fname
+              ,@props
+              :help ,help
+              :button (:toggle . (and (default-boundp ',fname)
+                                      (default-value ',fname)))))
 
 (defmacro menu-bar-make-toggle (name variable doc message help &rest body)
   `(progn
@@ -664,10 +664,10 @@ by \"Save Options\" in Custom buffers.")
        ;; a candidate for "Save Options", and we do not want to save options
        ;; the user have already set explicitly in his init file.
        (if interactively (customize-mark-as-set ',variable)))
-     (list 'menu-item ,doc ',name
-          :help ,help
-          :button '(:toggle . (and (default-boundp ',variable)
-                                   (default-value ',variable))))))
+     '(menu-item ,doc ,name
+                :help ,help
+                :button (:toggle . (and (default-boundp ',variable)
+                                        (default-value ',variable))))))
 
 ;; Function for setting/saving default font.
 
@@ -1812,9 +1812,14 @@ for the definition of the menu frame."
 When called in the minibuffer, get out of the minibuffer
 using `abort-recursive-edit'."
   (interactive)
-  (if (menu-bar-non-minibuffer-window-p)
-      (kill-buffer (current-buffer))
-    (abort-recursive-edit)))
+  (cond
+   ;; Don't do anything when `menu-frame' is not alive or visible
+   ;; (Bug#8184).
+   ((not (menu-bar-menu-frame-live-and-visible-p)))
+   ((menu-bar-non-minibuffer-window-p)
+    (kill-buffer (current-buffer)))
+   (t
+    (abort-recursive-edit))))
 
 (defun kill-this-buffer-enabled-p ()
   "Return non-nil if the `kill-this-buffer' menu item should be enabled."