| Index: third_party/google_input_tools/src/chrome/os/inputview/controller.js
|
| diff --git a/third_party/google_input_tools/src/chrome/os/inputview/controller.js b/third_party/google_input_tools/src/chrome/os/inputview/controller.js
|
| index e754caec72264a50484b9d0a14b0cadd7683fc39..4cd26fb4fc67415021064cc5fc70dee6c91f0f64 100644
|
| --- a/third_party/google_input_tools/src/chrome/os/inputview/controller.js
|
| +++ b/third_party/google_input_tools/src/chrome/os/inputview/controller.js
|
| @@ -40,6 +40,7 @@ goog.require('i18n.input.chrome.inputview.SizeSpec');
|
| goog.require('i18n.input.chrome.inputview.SpecNodeName');
|
| goog.require('i18n.input.chrome.inputview.StateType');
|
| goog.require('i18n.input.chrome.inputview.SwipeDirection');
|
| +goog.require('i18n.input.chrome.inputview.elements.Element');
|
| goog.require('i18n.input.chrome.inputview.elements.ElementType');
|
| goog.require('i18n.input.chrome.inputview.elements.content.Candidate');
|
| goog.require('i18n.input.chrome.inputview.elements.content.CandidateView');
|
| @@ -687,7 +688,8 @@ Controller.prototype.onPointerEvent_ = function(e) {
|
| // keyboard window bounds. For other cases, we expect a view associated with a
|
| // pointer up event.
|
| if (e.type == EventType.POINTER_UP && !e.view) {
|
| - if (this.container_.altDataView.isVisible()) {
|
| + if (this.container_.altDataView.isVisible() &&
|
| + e.identifier == this.container_.altDataView.identifier) {
|
| var altDataView = this.container_.altDataView;
|
| var ch = altDataView.getHighlightedCharacter();
|
| if (ch) {
|
| @@ -707,14 +709,6 @@ Controller.prototype.onPointerEvent_ = function(e) {
|
|
|
| if (e.view) {
|
| this.handlePointerAction_(e.view, e);
|
| - } else if (e.type == EventType.POINTER_DOWN) {
|
| - var tabbableKeysets = [
|
| - Controller.HANDWRITING_VIEW_CODE_,
|
| - Controller.EMOJI_VIEW_CODE_];
|
| - if (goog.array.contains(tabbableKeysets, this.currentKeyset_)) {
|
| - this.resetAll_();
|
| - this.switchToKeyset(this.container_.currentKeysetView.fromKeyset);
|
| - }
|
| }
|
| };
|
|
|
| @@ -745,7 +739,7 @@ Controller.prototype.onDragEvent_ = function(e) {
|
| Controller.prototype.handleSwipeAction_ = function(view, e) {
|
| var direction = e.direction;
|
| if (this.container_.altDataView.isVisible()) {
|
| - this.container_.altDataView.highlightItem(e.x, e.y);
|
| + this.container_.altDataView.highlightItem(e.x, e.y, e.identifier);
|
| return;
|
| }
|
| if (view.type == ElementType.BACKSPACE_KEY) {
|
| @@ -770,7 +764,6 @@ Controller.prototype.handleSwipeAction_ = function(view, e) {
|
| }
|
|
|
| if (view.type == ElementType.COMPACT_KEY) {
|
| -
|
| view = /** @type {!i18n.input.chrome.inputview.elements.content.
|
| CompactKey} */ (view);
|
| if ((direction & i18n.input.chrome.inputview.SwipeDirection.UP) &&
|
| @@ -842,6 +835,17 @@ Controller.prototype.handlePointerAction_ = function(view, e) {
|
| this.container_.gestureCanvasView.startStroke(e);
|
| }
|
|
|
| + if (this.adapter_.isGestureTypingEnabled() &&
|
| + e.type == EventType.POINTER_UP) {
|
| + this.container_.gestureCanvasView.endStroke(e);
|
| + }
|
| +
|
| + // Do not trigger other actives when gesturing.
|
| + if (this.adapter_.isGestureTypingEnabled() &&
|
| + this.container_.gestureCanvasView.isGesturing) {
|
| + return;
|
| + }
|
| +
|
| // Listen for DOUBLE_CLICK as well to capture secondary taps on the spacebar.
|
| if (e.type == EventType.POINTER_UP || e.type == EventType.DOUBLE_CLICK) {
|
| this.recordStatsForClosing_(
|
| @@ -853,6 +857,17 @@ Controller.prototype.handlePointerAction_ = function(view, e) {
|
| this.handleSwipeAction_(view, e);
|
| }
|
| switch (view.type) {
|
| + case ElementType.KEYBOARD_CONTAINER_VIEW:
|
| + if (e.type == EventType.POINTER_DOWN) {
|
| + var tabbableKeysets = [
|
| + Controller.HANDWRITING_VIEW_CODE_,
|
| + Controller.EMOJI_VIEW_CODE_];
|
| + if (goog.array.contains(tabbableKeysets, this.currentKeyset_)) {
|
| + this.resetAll_();
|
| + this.switchToKeyset(this.container_.currentKeysetView.fromKeyset);
|
| + }
|
| + }
|
| + return;
|
| case ElementType.BACK_BUTTON:
|
| case ElementType.BACK_TO_KEYBOARD:
|
| if (e.type == EventType.POINTER_OUT || e.type == EventType.POINTER_UP) {
|
| @@ -906,10 +921,7 @@ Controller.prototype.handlePointerAction_ = function(view, e) {
|
| case ElementType.ALTDATA_VIEW:
|
| view = /** @type {!i18n.input.chrome.inputview.elements.content.
|
| AltDataView} */ (view);
|
| - if (e.type == EventType.POINTER_DOWN &&
|
| - e.target == view.getCoverElement()) {
|
| - view.hide();
|
| - } else if (e.type == EventType.POINTER_UP) {
|
| + if (e.type == EventType.POINTER_UP && e.identifier == view.identifier) {
|
| var ch = view.getHighlightedCharacter();
|
| if (ch) {
|
| this.adapter_.sendKeyDownAndUpEvent(ch, view.triggeredBy.id,
|
| @@ -925,7 +937,7 @@ Controller.prototype.handlePointerAction_ = function(view, e) {
|
| case ElementType.MENU_ITEM:
|
| view = /** @type {!i18n.input.chrome.inputview.elements.content.
|
| MenuItem} */ (view);
|
| - if (e.type == EventType.CLICK) {
|
| + if (e.type == EventType.POINTER_UP) {
|
| this.executeCommand_.apply(this, view.getCommand());
|
| this.container_.menuView.hide();
|
| this.soundController_.onKeyUp(view.type);
|
| @@ -940,7 +952,7 @@ Controller.prototype.handlePointerAction_ = function(view, e) {
|
| view = /** @type {!i18n.input.chrome.inputview.elements.content.
|
| MenuView} */ (view);
|
|
|
| - if (e.type == EventType.POINTER_DOWN &&
|
| + if (e.type == EventType.CLICK &&
|
| e.target == view.getCoverElement()) {
|
| view.hide();
|
| }
|
| @@ -1070,7 +1082,8 @@ Controller.prototype.handlePointerEventForSoftKey_ = function(softKey, e) {
|
| CharacterKey} */ (softKey);
|
| if (e.type == EventType.LONG_PRESS) {
|
| this.container_.altDataView.show(
|
| - key, goog.i18n.bidi.isRtlLanguage(this.languageCode_));
|
| + key, goog.i18n.bidi.isRtlLanguage(this.languageCode_),
|
| + e.identifier);
|
| } else if (e.type == EventType.POINTER_UP) {
|
| this.model_.stateManager.triggerChording();
|
| var ch = key.getActiveCharacter();
|
| @@ -1225,7 +1238,8 @@ Controller.prototype.handlePointerEventForSoftKey_ = function(softKey, e) {
|
| CompactKey} */(softKey);
|
| if (e.type == EventType.LONG_PRESS) {
|
| this.container_.altDataView.show(
|
| - key, goog.i18n.bidi.isRtlLanguage(this.languageCode_));
|
| + key, goog.i18n.bidi.isRtlLanguage(this.languageCode_),
|
| + e.identifier);
|
| } else if (e.type == EventType.POINTER_UP) {
|
| this.model_.stateManager.triggerChording();
|
| var ch = key.getActiveCharacter();
|
| @@ -1632,9 +1646,13 @@ Controller.prototype.clearCandidates_ = function() {
|
| this.currentKeyset_ == Controller.EMOJI_VIEW_CODE_)) {
|
| this.container_.candidateView.switchToIcon(
|
| CandidateView.IconType.BACK, true);
|
| - } else {
|
| + } else if (this.currentKeyset_ != Controller.HANDWRITING_VIEW_CODE_ &&
|
| + this.currentKeyset_ != Controller.EMOJI_VIEW_CODE_) {
|
| this.container_.candidateView.switchToIcon(CandidateView.IconType.VOICE,
|
| this.adapter_.isVoiceInputEnabled);
|
| + } else {
|
| + this.container_.candidateView.switchToIcon(CandidateView.IconType.VOICE,
|
| + false);
|
| }
|
| };
|
|
|
| @@ -1862,7 +1880,7 @@ Controller.prototype.resize = function(opt_ignoreWindowResize) {
|
| return;
|
| }
|
|
|
| - this.container_.resize(screen.width, height, widthPercent,
|
| + this.container_.setContainerSize(screen.width, height, widthPercent,
|
| candidateViewHeight);
|
| this.container_.candidateView.setToolbarVisible(this.shouldShowToolBar_());
|
| if (this.container_.currentKeysetView) {
|
|
|