emacs-elpa-diffs
[Top][All Lists]
Advanced

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

[elpa] 83/117: Handle menu-bar when flattening keymaps.


From: Matthew Fidler
Subject: [elpa] 83/117: Handle menu-bar when flattening keymaps.
Date: Fri, 25 Jul 2014 13:24:26 +0000

mlf176f2 pushed a commit to branch externals/ergoemacs-mode
in repository elpa.

commit 468b6f5cc8623e6e42cde74f36df74b1eb45949c
Author: Matthew L. Fidler <address@hidden>
Date:   Tue Jul 22 07:39:54 2014 -0500

    Handle menu-bar when flattening keymaps.
---
 ergoemacs-mode.el |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/ergoemacs-mode.el b/ergoemacs-mode.el
index 5776c11..f3dd101 100644
--- a/ergoemacs-mode.el
+++ b/ergoemacs-mode.el
@@ -82,19 +82,26 @@ PRE-VECTOR is to help define the full key-vector sequence."
         (when (integerp i)
           (define-key parent (substring key 0 i) nil))
         (define-key parent key (cdr item)))
+       ((and key (equal key [menu-bar]))
+        (define-key parent key nil)
+        (define-key parent key (cdr item)))
        ((and key (ignore-errors (eq 'keymap (nth 1 item))))
-        (ergoemacs-flatten-composed-keymap--define-key (cdr item) parent 
key))))))
+        (ergoemacs-flatten-composed-keymap--define-key (cdr item) parent key))
+       (t )))))
 
 (defun ergoemacs-flatten-composed-keymap (keymap)
   "Flattens a composed KEYMAP.
 If it is not a composed KEYMAP, return the keymap as is."
   (if (not (ignore-errors (and (keymapp keymap) (eq (nth 0 (nth 1 keymap)) 
'keymap)))) keymap
-    (let* ((parent (keymap-parent keymap))
-           (new-keymap (or (and parent (copy-keymap parent)) 
(make-sparse-keymap)))
-           (remaining (cdr (copy-keymap keymap)))
+    (let* (new-keymap
+           (remaining (cdr keymap))
            (keymap-list '()))
       (while (keymapp (car remaining))
         (push (pop remaining) keymap-list)) ;; Should be reversed
+      ;; Parent keymap
+      (if (keymapp remaining)
+          (setq new-keymap (copy-keymap remaining))
+        (setq new-keymap (make-sparse-keymap)))
       (dolist (sub-keymap keymap-list)
         (ergoemacs-flatten-composed-keymap--define-key sub-keymap new-keymap))
       new-keymap)))



reply via email to

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