summaryrefslogtreecommitdiff
path: root/lisp/menu-bar.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1995-06-29 03:11:37 +0000
committerRichard M. Stallman <rms@gnu.org>1995-06-29 03:11:37 +0000
commit823587cafeea459c21b15c5a90707d7bf60f3505 (patch)
treefe9b32199cc7330de2f3d3703f97cb656aa3f71c /lisp/menu-bar.el
parentfcf8e1d799d0760e680c32c7c7e109e3500c1707 (diff)
downloademacs-823587cafeea459c21b15c5a90707d7bf60f3505.tar.gz
Make more menu-enables check (not buffer-read-only).
Add minibuffer local menu bar menus.
Diffstat (limited to 'lisp/menu-bar.el')
-rw-r--r--lisp/menu-bar.el57
1 files changed, 50 insertions, 7 deletions
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index ba07f0999b2..079de741c85 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -235,17 +235,20 @@
(message "Select a region with the mouse does `copy' automatically")
(kill-ring-save beg end)))
-(put 'fill-region 'menu-enable 'mark-active)
-(put 'kill-region 'menu-enable 'mark-active)
+(put 'fill-region 'menu-enable '(and mark-active (not buffer-read-only)))
+(put 'kill-region 'menu-enable '(and mark-active (not buffer-read-only)))
(put 'menu-bar-kill-ring-save 'menu-enable 'mark-active)
-(put 'yank 'menu-enable '(x-selection-exists-p))
-(put 'yank-menu 'menu-enable '(cdr yank-menu))
+(put 'yank 'menu-enable '(and (x-selection-exists-p) (not buffer-read-only)))
+(put 'yank-menu 'menu-enable '(and (cdr yank-menu) (not buffer-read-only)))
(put 'delete-region 'menu-enable '(and mark-active
+ (not buffer-read-only)
(not (mouse-region-match))))
-(put 'undo 'menu-enable '(if (eq last-command 'undo)
- pending-undo-list
- (consp buffer-undo-list)))
+(put 'undo 'menu-enable '(and (not buffer-read-only)
+ (if (eq last-command 'undo)
+ pending-undo-list
+ (consp buffer-undo-list))))
(put 'query-replace 'menu-enable '(not buffer-read-only))
+(put 'query-replace-regexp 'menu-enable '(not buffer-read-only))
(autoload 'ispell-menu-map "ispell" nil t 'keymap)
@@ -590,6 +593,46 @@ A large number or nil slows down menu responsiveness.")
;;; mode-name
;;; (or (buffer-file-name) ""))))))
+;;; Set up a menu bar menu for the minibuffer.
+
+(mapcar
+ (function
+ (lambda (map)
+ (define-key map [menu-bar minibuf]
+ (cons "Minibuf" (make-sparse-keymap "Minibuf")))))
+ (list minibuffer-local-ns-map
+ minibuffer-local-must-match-map
+ minibuffer-local-isearch-map
+ minibuffer-local-map
+ minibuffer-local-completion-map))
+
+(mapcar
+ (function
+ (lambda (map)
+ (define-key map [menu-bar minibuf ?\?]
+ '("List Completions" . minibuffer-completion-help))
+ (define-key map [menu-bar minibuf space]
+ '("Complete Word" . minibuffer-complete-word))
+ (define-key map [menu-bar minibuf tab]
+ '("Complete" . 'minibuffer-complete))
+ ))
+ (list minibuffer-local-must-match-map
+ minibuffer-local-completion-map))
+
+(mapcar
+ (function
+ (lambda (map)
+ (define-key map [menu-bar minibuf quit]
+ '("Quit" . keyboard-escape-quit))
+ (define-key map [menu-bar minibuf return]
+ '("Enter" . exit-minibuffer))
+ ))
+ (list minibuffer-local-ns-map
+ minibuffer-local-must-match-map
+ minibuffer-local-isearch-map
+ minibuffer-local-map
+ minibuffer-local-completion-map))
+
(defvar menu-bar-mode nil)
(defun menu-bar-mode (flag)