[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r118170: * lisp/imenu.el (imenu--menubar-keymap): Ne
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] trunk r118170: * lisp/imenu.el (imenu--menubar-keymap): New var. |
Date: |
Tue, 21 Oct 2014 01:33:50 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 118170
revision-id: address@hidden
parent: address@hidden
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Mon 2014-10-20 21:33:44 -0400
message:
* lisp/imenu.el (imenu--menubar-keymap): New var.
(imenu-add-to-menubar): Set it to remember the keymap we used.
(imenu-update-menubar): Use it instead of asking lookup-key.
modified:
lisp/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1432
lisp/imenu.el imenu.el-20091113204419-o5vbwnq5f7feedwu-696
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2014-10-21 01:17:06 +0000
+++ b/lisp/ChangeLog 2014-10-21 01:33:44 +0000
@@ -1,5 +1,9 @@
2014-10-21 Stefan Monnier <address@hidden>
+ * imenu.el (imenu--menubar-keymap): New var.
+ (imenu-add-to-menubar): Set it to remember the keymap we used.
+ (imenu-update-menubar): Use it instead of asking lookup-key.
+
* obsolete/cc-compat.el: Make obsolete (bug#18561).
* epg-config.el (epg-gpg-program): Don't use absolute names by default.
@@ -28,6 +32,13 @@
2014-10-20 Stefan Monnier <address@hidden>
+ * mouse.el (mouse--down-1-maybe-follows-link): Remove unused var
+ `this-event'.
+ (mouse-drag-line): Use there's no actual mouse, use the event's
+ position info.
+
+2014-10-20 Stefan Monnier <address@hidden>
+
* textmodes/css-mode.el (scss-mode): New major-mode.
(css-mode-syntax-table): Use d style comment, to ease the scss case.
(css-ident-re): Allow things like @-moz-keyframes.
=== modified file 'lisp/imenu.el'
--- a/lisp/imenu.el 2014-10-06 03:59:38 +0000
+++ b/lisp/imenu.el 2014-10-21 01:33:44 +0000
@@ -936,6 +936,8 @@
(setq result t imenu--index-alist nil)))
result))
+(defvar-local imenu--menubar-keymap nil)
+
;;;###autoload
(defun imenu-add-to-menubar (name)
"Add an `imenu' entry to the menu bar for the current buffer.
@@ -952,8 +954,9 @@
(let ((newmap (make-sparse-keymap)))
(set-keymap-parent newmap (current-local-map))
(setq imenu--last-menubar-index-alist nil)
+ (setq imenu--menubar-keymap (make-sparse-keymap "Imenu"))
(define-key newmap [menu-bar index]
- `(menu-item ,name ,(make-sparse-keymap "Imenu")))
+ `(menu-item ,name ,imenu--menubar-keymap))
(use-local-map newmap)
(add-hook 'menu-bar-update-hook 'imenu-update-menubar)))
(user-error "The mode `%s' does not support Imenu"
@@ -975,28 +978,23 @@
(defun imenu-update-menubar ()
(when (and (current-local-map)
- (keymapp (lookup-key (current-local-map) [menu-bar index]))
+ imenu--menubar-keymap
(/= (buffer-chars-modified-tick) imenu-menubar-modified-tick))
(setq imenu-menubar-modified-tick (buffer-chars-modified-tick))
(let ((index-alist (imenu--make-index-alist t)))
;; Don't bother updating if the index-alist has not changed
;; since the last time we did it.
(unless (equal index-alist imenu--last-menubar-index-alist)
- (let (menu menu1 old)
- (setq imenu--last-menubar-index-alist index-alist)
- (setq index-alist (imenu--split-submenus index-alist))
- (setq menu (imenu--split-menu index-alist
- (buffer-name)))
- (setq menu1 (imenu--create-keymap (car menu)
+ (setq imenu--last-menubar-index-alist index-alist)
+ (setq index-alist (imenu--split-submenus index-alist))
+ (let* ((menu (imenu--split-menu index-alist
+ (buffer-name)))
+ (menu1 (imenu--create-keymap (car menu)
(cdr (if (< 1 (length (cdr menu)))
menu
(car (cdr menu))))
- 'imenu--menubar-select))
- (setq old (lookup-key (current-local-map) [menu-bar index]))
- ;; This should never happen, but in some odd cases, potentially,
- ;; lookup-key may return a dynamically composed keymap.
- (if (keymapp (cadr old)) (setq old (cadr old)))
- (setcdr old (cdr menu1)))))))
+ 'imenu--menubar-select)))
+ (setcdr imenu--menubar-keymap (cdr menu1)))))))
(defun imenu--menubar-select (item)
"Use Imenu to select the function or variable named in this menu ITEM."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r118170: * lisp/imenu.el (imenu--menubar-keymap): New var.,
Stefan Monnier <=