Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2594)

Unified Diff: chrome/browser/resources/chromeos/braille_ime/braille_ime.js

Issue 271723002: Make Braille IME send space bar as an empty cell instead of letting propagate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ime
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/braille_ime/braille_ime.js
diff --git a/chrome/browser/resources/chromeos/braille_ime/braille_ime.js b/chrome/browser/resources/chromeos/braille_ime/braille_ime.js
index 885f6df877094a8b1a0bdbf93167a666074b1109..5ea42d2274d7392e6215f930c30b8fb39ac7e0b7 100644
--- a/chrome/browser/resources/chromeos/braille_ime/braille_ime.js
+++ b/chrome/browser/resources/chromeos/braille_ime/braille_ime.js
@@ -93,11 +93,12 @@ BrailleIme.prototype = {
* Note that the mapping below is arranged like the dots in a braille cell.
* Only 6 dot input is supported.
* @private
- * @const {Object.<string, string>}
+ * @const {Object.<string, number>}
*/
CODE_TO_DOT_: {'KeyF': 0x01, 'KeyJ': 0x08,
'KeyD': 0x02, 'KeyK': 0x10,
- 'KeyS': 0x04, 'KeyL': 0x20 },
+ 'KeyS': 0x04, 'KeyL': 0x20 ,
David Tseng 2014/05/07 18:05:54 nit: extra space before comma
+ 'Space': 0},
David Tseng 2014/05/07 18:05:54 nit: space before }
/**
* The current engine ID as set by {@code onActivate}, or the empty string if
@@ -201,7 +202,7 @@ BrailleIme.prototype = {
*/
onKeyEvent_: function(engineID, event) {
this.log_('onKeyEvent', engineID + ', ' + JSON.stringify(event));
- return this.processKey_(event.code, event.type);
+ return this.processKey_(event);
},
/**
@@ -253,28 +254,33 @@ BrailleIme.prototype = {
/**
* Handles a querty key on the home row as a braille key.
David Tseng 2014/05/07 18:05:54 nit: I think it's "qwerty"
- * @param {string} code Key code.
- * @param {string} type Type of key event.
+ * @param {!ChromeKeyboardEvent} event Keyboard event.
* @return {boolean} Whether the key event was handled or not.
* @private
*/
- processKey_: function(code, type) {
+ processKey_: function(event) {
if (!this.useStandardKeyboard_) {
return false;
}
- var dot = this.CODE_TO_DOT_[code];
- if (!dot) {
+ var dot = this.CODE_TO_DOT_[event.code];
+ if (dot === undefined || event.altKey || event.ctrlKey || event.shiftKey ||
+ event.capsLock) {
this.pressed_ = 0;
this.accumulated_ = 0;
return false;
}
- if (type === 'keydown') {
- this.pressed_ |= dot;
- this.accumulated_ |= this.pressed_;
+ if (event.type === 'keydown') {
+ if (dot !== 0) {
+ this.pressed_ |= dot;
+ this.accumulated_ |= this.pressed_;
+ } else {
+ // Space cancels other dots.
David Tseng 2014/05/07 18:05:54 Just wondering about the behavior here. If I hold
+ this.pressed_ = this.accumulated_ = 0;
+ }
return true;
- } else if (type == 'keyup') {
+ } else if (event.type === 'keyup') {
this.pressed_ &= ~dot;
- if (this.pressed_ == 0 && this.accumulated_ != 0) {
+ if (this.pressed_ === 0 && (this.accumulated_ !== 0 || dot === 0)) {
this.sendToChromeVox_({type: 'brailleDots', dots: this.accumulated_});
this.accumulated_ = 0;
}

Powered by Google App Engine
This is Rietveld 408576698