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

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: Simplify a check. 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
« no previous file with comments | « no previous file | chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..0be3b4ca249677e03205a2243d42d913084b31a7 100644
--- a/chrome/browser/resources/chromeos/braille_ime/braille_ime.js
+++ b/chrome/browser/resources/chromeos/braille_ime/braille_ime.js
@@ -69,7 +69,7 @@ BrailleIme.prototype = {
USE_STANDARD_KEYBOARD_ID: 'useStandardKeyboard',
// State related to the support for typing braille using a standrad
- // (querty) keyboard.
+ // (qwerty) keyboard.
/** @private {boolean} */
useStandardKeyboard_: false,
@@ -88,16 +88,24 @@ BrailleIme.prototype = {
accumulated_: 0,
/**
+ * Bit in {@code pressed_} and {@code accumulated_} that represent
+ * the space key.
+ * @const {number}
+ */
+ SPACE: 0x100,
+
+ /**
* Maps key codes on a standard keyboard to the correspodning dots.
* Keys on the 'home row' correspond to the keys on a Perkins-style keyboard.
* 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,
+ 'Space': 0x100 },
/**
* The current engine ID as set by {@code onActivate}, or the empty string if
@@ -201,7 +209,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);
},
/**
@@ -252,31 +260,40 @@ BrailleIme.prototype = {
},
/**
- * Handles a querty key on the home row as a braille key.
- * @param {string} code Key code.
- * @param {string} type Type of key event.
+ * Handles a qwerty key on the home row as a braille key.
+ * @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 || event.altKey || event.ctrlKey || event.shiftKey ||
+ event.capsLock) {
this.pressed_ = 0;
this.accumulated_ = 0;
return false;
}
- if (type === 'keydown') {
+ if (event.type === 'keydown') {
this.pressed_ |= dot;
this.accumulated_ |= this.pressed_;
return true;
- } else if (type == 'keyup') {
+ } else if (event.type === 'keyup') {
this.pressed_ &= ~dot;
- if (this.pressed_ == 0 && this.accumulated_ != 0) {
- this.sendToChromeVox_({type: 'brailleDots', dots: this.accumulated_});
+ if (this.pressed_ === 0 && this.accumulated_ !== 0) {
+ var dotsToSend = this.accumulated_;
this.accumulated_ = 0;
+ if (dotsToSend & this.SPACE) {
+ if (dotsToSend != this.SPACE) {
+ // Can't combine space and actual dot keys.
+ return true;
+ }
+ // Space is sent as a blank cell.
+ dotsToSend = 0;
+ }
+ this.sendToChromeVox_({type: 'brailleDots', dots: dotsToSend});
}
return true;
}
« no previous file with comments | « no previous file | chrome/browser/resources/chromeos/braille_ime/braille_ime_unittest.gtestjs » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698