From 26ddb06c8b0354d0540dfd3b54eb6ac2de43ea71 Mon Sep 17 00:00:00 2001 From: Jim Ramsay Date: Mon, 4 Jan 2010 22:14:21 +0800 Subject: ESC clears the keyQueue This allows a user to abort part-way through a multi-character command. --- background_page.html | 12 +++++++++--- vimiumFrontend.js | 18 +++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/background_page.html b/background_page.html index 26941cc8..f1bf450a 100644 --- a/background_page.html +++ b/background_page.html @@ -314,9 +314,15 @@ } function handleKeyDown(key, port) { - console.log("checking keyQueue: [", keyQueue + key, "]"); - keyQueue = checkKeyQueue(keyQueue + key, port.tab.id); - console.log("new KeyQueue: " + keyQueue); + if (key == "") { + console.log("clearing keyQueue"); + keyQueue = "" + } + else { + console.log("checking keyQueue: [", keyQueue + key, "]"); + keyQueue = checkKeyQueue(keyQueue + key, port.tab.id); + console.log("new KeyQueue: " + keyQueue); + } } function checkKeyQueue(keysToCheck, tabId) { diff --git a/vimiumFrontend.js b/vimiumFrontend.js index b2750760..c84a619e 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -298,14 +298,18 @@ function onKeydown(event) { else if (event.keyCode == keyCodes.enter) handleEnterForFindMode(); } - else if (!insertMode && !findMode && keyChar) - { - if (currentCompletionKeys.indexOf(keyChar) != -1) { - event.preventDefault(); - event.stopPropagation(); - } + else if (!insertMode && !findMode) { + if (keyChar) { + if (currentCompletionKeys.indexOf(keyChar) != -1) { + event.preventDefault(); + event.stopPropagation(); + } - keyPort.postMessage(keyChar); + keyPort.postMessage(keyChar); + } + else if (event.keyCode == keyCodes.ESC) { + keyPort.postMessage(""); + } } } -- cgit v1.2.3