From acf4f8189560e743e4c3f65df960f27da24b1b30 Mon Sep 17 00:00:00 2001 From: Jeremy Maitin-Shepard Date: Mon, 29 Dec 2008 17:08:00 -0500 Subject: [PATCH] keyboard.js: properly assign parent keymap for auto-generated prefix keymaps Assign the closest ancestor's corresponding prefix map as the parent for such generated maps, rather than only looking for a corresponding prefix map in the direct parent keymap. This resolves issue 91. --- modules/keyboard.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/modules/keyboard.js b/modules/keyboard.js index c679171..ef71cfd 100644 --- a/modules/keyboard.js +++ b/modules/keyboard.js @@ -267,12 +267,19 @@ outer: continue outer; } - if (!final_binding && parent_kmap) { - var p_bindings = parent_kmap.bindings; + if (!final_binding) { + let temp_parent = parent_kmap; parent_kmap = null; - var p_binding = p_bindings[key]; - if (p_binding && p_binding.keymap) - parent_kmap = p_binding.keymap; + while (temp_parent) { + let p_bindings = temp_parent.bindings; + let p_binding = p_bindings[key]; + if (p_binding && p_binding.keymap) { + parent_kmap = p_binding.keymap; + break; + } else { + temp_parent = temp_parent.parent; + } + } } bindings[key] = make_binding(); -- 2.11.4.GIT