From 0215cd8444fba8cc3b536b2c6016678e3e756c1f Mon Sep 17 00:00:00 2001 From: ilya Date: Sun, 6 Dec 2009 12:40:47 -0800 Subject: Enable non-alphanumeric characters in find queries. Closes #14. Fix involved two things: (1) unblocking the display of real spaces in the HUD when mixed in with the fake spaces intentionally inserted, (2) fixing our keydown handler to understand the scenario when we need to use the unicode keyIdentifier.--- vimiumFrontend.js | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/vimiumFrontend.js b/vimiumFrontend.js index e74b1fbd..1c9a4b50 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -160,17 +160,21 @@ function onKeydown(event) { return; // Ignore modifier keys by themselves. - if (event.keyCode > 31 && event.keyCode < 127) { - keyChar = String.fromCharCode(event.keyCode).toLowerCase(); + if (event.keyCode > 31) { + if (event.keyCode < 127) + keyChar = String.fromCharCode(event.keyCode).toLowerCase(); + else + { + unicodeKeyInHex = "0x" + event.keyIdentifier.substring(2); + keyChar = String.fromCharCode(parseInt(unicodeKeyInHex)).toLowerCase(); + } + if (event.shiftKey) keyChar = keyChar.toUpperCase(); if (event.ctrlKey) keyChar = ""; } - // NOTE(ilya): Not really sure why yet but / yields 191 (¿) on my mac. - if (event.keyCode == 191) { keyChar = "/"; } - if (insertMode && event.keyCode == keyCodes.ESC) { // Remove focus so the user can't just get himself back into insert mode by typing in the same input box. @@ -263,7 +267,12 @@ function insertSpaces(query) { var newQuery = ""; for (var i = 0; i < query.length; i++) - newQuery = newQuery + query[i] + " "; + { + if (query[i] == " " || (i + 1 < query.length && query[i + 1] == " ")) + newQuery = newQuery + query[i]; + else + newQuery = newQuery + query[i] + " "; + } return newQuery; } -- cgit v1.2.3 From df4e49d799543a76461a176210e2937c1c5b24be Mon Sep 17 00:00:00 2001 From: ilya Date: Sun, 6 Dec 2009 12:48:24 -0800 Subject: Simplify our key handling further. --- vimiumFrontend.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/vimiumFrontend.js b/vimiumFrontend.js index ce37db3f..51235f09 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -164,13 +164,8 @@ function onKeydown(event) { // Ignore modifier keys by themselves. if (event.keyCode > 31) { - if (event.keyCode < 127) - keyChar = String.fromCharCode(event.keyCode).toLowerCase(); - else - { - unicodeKeyInHex = "0x" + event.keyIdentifier.substring(2); - keyChar = String.fromCharCode(parseInt(unicodeKeyInHex)).toLowerCase(); - } + unicodeKeyInHex = "0x" + event.keyIdentifier.substring(2); + keyChar = String.fromCharCode(parseInt(unicodeKeyInHex)).toLowerCase(); if (event.shiftKey) keyChar = keyChar.toUpperCase(); -- cgit v1.2.3