]> git.eshelyaron.com Git - emacs.git/commitdiff
(mouse-major-mode-menu): Suppress duplicate menus.
authorGlenn Morris <rgm@gnu.org>
Tue, 8 Jan 2008 05:18:09 +0000 (05:18 +0000)
committerGlenn Morris <rgm@gnu.org>
Tue, 8 Jan 2008 05:18:09 +0000 (05:18 +0000)
lisp/ChangeLog
lisp/mouse.el

index 37341b2de7276dacf97c67cd69bb47187f0308b6..f375e101d6c79115dd8131e50f356f8ebda5482f 100644 (file)
@@ -1,3 +1,10 @@
+2008-01-08  Glenn Morris  <rgm@gnu.org>
+
+       * diff-mode.el (diff-end-of-hunk): Don't match empty lines in
+       unified format.
+
+       * mouse.el (mouse-major-mode-menu): Suppress duplicate menus.
+
 2008-01-08  Nick Roberts  <nickrob@snap.net.nz>
 
        * progmodes/gdb-ui.el (gdb-var-list-children-1): Put varnum in
index 179670c73261124c94d3f256fd0140ef8901f203..27bf00ce26763b40e508ffb9be382a44d7eaeed4 100644 (file)
@@ -173,11 +173,22 @@ Default to the Edit menu if the major mode doesn't define a menu."
         ;; default to the edit menu.
         (newmap (if ancestor
                     (make-sparse-keymap (concat mode-name " Mode"))
-                  menu-bar-edit-menu)))
+                  menu-bar-edit-menu))
+        uniq)
     (if ancestor
        ;; Make our menu inherit from the desired keymap which we want
        ;; to display as the menu now.
-       (set-keymap-parent newmap ancestor))
+       ;; Sometimes keymaps contain duplicate menu code, leading to
+       ;; duplicates in the popped-up menu. Avoid this by simply
+       ;; taking the first of any identically-named menus.
+       ;; http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg00469.html
+       (set-keymap-parent newmap
+                          (progn
+                            (dolist (e ancestor)
+                              (unless (and (listp e)
+                                           (assoc (car e) uniq))
+                                (setq uniq (append uniq (list e)))))
+                            uniq)))
     (popup-menu newmap event prefix)))