emacs-diffs
[Top][All Lists]
Advanced

[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."


reply via email to

[Prev in Thread] Current Thread [Next in Thread]