[Top][All Lists]
[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)))