1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-02 11:21:42 +00:00

(mouse-major-mode-menu): Suppress duplicate menus.

This commit is contained in:
Glenn Morris 2008-01-08 05:13:06 +00:00
parent 15d621675c
commit 0595c9f92f
2 changed files with 18 additions and 3 deletions

View File

@ -1,4 +1,8 @@
2008-01-05 Ralf Angeli <angeli@caeruleus.net>
2008-01-08 Glenn Morris <rgm@gnu.org>
* mouse.el (mouse-major-mode-menu): Suppress duplicate menus.
2008-01-08 Ralf Angeli <angeli@caeruleus.net>
* textmodes/reftex-toc.el (reftex-make-separate-toc-frame):
Simplify selection of frame focusing function.

View File

@ -194,11 +194,22 @@ Default to the Edit menu if the major mode doesn't define a menu."
(newmap (if ancestor
(make-sparse-keymap (concat (format-mode-line 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)))