emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/mouse.el,v [EMACS_22_BASE]


From: Glenn Morris
Subject: [Emacs-diffs] Changes to emacs/lisp/mouse.el,v [EMACS_22_BASE]
Date: Tue, 08 Jan 2008 05:13:16 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Branch:         EMACS_22_BASE
Changes by:     Glenn Morris <gm>       08/01/08 05:13:16

Index: mouse.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/mouse.el,v
retrieving revision 1.315.2.5
retrieving revision 1.315.2.6
diff -u -b -r1.315.2.5 -r1.315.2.6
--- mouse.el    7 Jan 2008 02:44:28 -0000       1.315.2.5
+++ mouse.el    8 Jan 2008 05:13:16 -0000       1.315.2.6
@@ -173,11 +173,22 @@
         ;; 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)))
 
 




reply via email to

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