keyUp is generating duplicate (shifted) keypresses on Firefox and Chrome on Mac
Opened this issue · 0 comments
GoogleCodeExporter commented
What steps will reproduce the problem?
1. login to bash (or any other service) with shellinabox
2. press any alphabetic key, and keep it pressed for a second or two
3. release the key
What is the expected output? What do you see instead?
Expect the pressed key to be input (and echoed), If you've kept it pressed long enough, expect the pressed key to repeat (until you release it).
What actually happens is that the key is input correctly when you press the key down. It doesn't repeat. But when you release the key, the character is input a second time. If you'd typed a lower-case character, the repeated character is inserted as its upper-case equivalent (though there is no SHIFT key pressed).
What version of the product are you using? On what operating system?
version 2.14, on Mac OSX 10.9.2 Mavericks.
Please provide any additional information below.
Only a problem with Chrome and Firefox. It works as expected (no keyUp event fired) on Safari.
I worked around the problem by putting in a hacky patch:
--- vt100.js.orig 2014-04-04 17:18:02.000000000 +0100
+++ vt100.js 2014-04-04 17:30:28.000000000 +0100
@@ -3102,6 +3102,7 @@
fake.metaKey = event.metaKey;
if (asciiKey) {
fake.charCode = event.keyCode;
+ if (!event.shiftKey) fake.charCode |= 040; /* if it's not shifted,
lower-case it */
fake.keyCode = 0;
} else {
fake.charCode = 0;
@@ -3110,8 +3111,10 @@
fake = this.fixEvent(fake);
}
}
- this.lastNormalKeyDownEvent = undefined;
- this.handleKey(fake);
+ if (!asciiKey || fake.charCode != lastNormalKeyDownEvent.keyCode) {
+ this.lastNormalKeyDownEvent = undefined;
+ this.handleKey(fake);
+ }
}
}
Original issue reported on code.google.com by Simon.Br...@gmail.com
on 4 Apr 2014 at 4:45