[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/tmm.el,v
From: |
Nick Roberts |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/tmm.el,v |
Date: |
Tue, 03 Apr 2007 01:07:42 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Nick Roberts <nickrob> 07/04/03 01:07:41
Index: tmm.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/tmm.el,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -b -r1.50 -r1.51
--- tmm.el 30 Mar 2007 06:11:38 -0000 1.50
+++ tmm.el 3 Apr 2007 01:07:41 -0000 1.51
@@ -41,7 +41,7 @@
(defvar tmm-short-cuts)
(defvar tmm-old-mb-map nil)
(defvar tmm-old-comp-map)
-(defvar tmm-c-prompt)
+(defvar tmm-c-prompt nil)
(defvar tmm-km-list)
(defvar tmm-next-shortcut-digit)
(defvar tmm-table-undef)
@@ -71,17 +71,18 @@
(list this-one)))))
(setq list (cdr list))))
(if x-position
- (let ((tail menu-bar)
- this-one
- (column 0))
+ (let ((tail menu-bar) (column 0)
+ this-one name)
(while (and tail (<= column x-position))
(setq this-one (car tail))
(if (and (consp this-one)
(consp (cdr this-one))
- (stringp (nth 1 this-one)))
- (setq column (+ column
- (length (nth 1 this-one))
- 1)))
+ (setq name ; nil if menu-item
+ (cond ((stringp (nth 1 this-one))
+ (nth 1 this-one))
+ ((stringp (nth 2 this-one))
+ (nth 2 this-one)))))
+ (setq column (+ column (length name) 1)))
(setq tail (cdr tail)))
(setq menu-bar-item (car this-one))))
(tmm-prompt menu-bar nil menu-bar-item)))
@@ -517,7 +518,7 @@
we merge them into a single keymap which shows the proper order of the menu.
However, for the menu bar itself, the value does not take account
of `menu-bar-final-items'."
- (let (allbind bind)
+ (let (allbind bind minorbind localbind globalbind)
(setq bind (key-binding keyseq))
;; If KEYSEQ is a prefix key, then BIND is either nil
;; or a symbol defined as a keymap (which satisfies keymapp).
@@ -528,9 +529,21 @@
(progn
;; Otherwise, it is a prefix, so make a list of the subcommands.
;; Make a list of all the bindings in all the keymaps.
- (setq allbind (mapcar 'cdr (minor-mode-key-binding keyseq)))
- (setq allbind (cons (local-key-binding keyseq) allbind))
- (setq allbind (cons (global-key-binding keyseq) allbind))
+ (setq minorbind (mapcar 'cdr (minor-mode-key-binding keyseq)))
+ (setq localbind (local-key-binding keyseq))
+ (setq globalbind (cdr (global-key-binding keyseq)))
+
+ ;; If items have been redefined/undefined locally, remove them from
+ ;; the global list.
+ (dolist (minor minorbind)
+ (dolist (item (cdr minor))
+ (setq globalbind (assq-delete-all (car item) globalbind))))
+ (dolist (item (cdr localbind))
+ (setq globalbind (assq-delete-all (car item) globalbind)))
+
+ (setq globalbind (cons 'keymap globalbind))
+ (setq allbind (cons globalbind (cons localbind minorbind)))
+
;; Merge all the elements of ALLBIND into one keymap.
(mapc (lambda (in)
(if (and (symbolp in) (keymapp in))
- [Emacs-diffs] Changes to emacs/lisp/tmm.el,v,
Nick Roberts <=