| Index: third_party/google_input_tools/src/chrome/os/inputview/elements/content/gesturecanvasview.js
|
| diff --git a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/gesturecanvasview.js b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/gesturecanvasview.js
|
| index 05b6507618522c33ca36a70832b2e9af365b60ef..d4fe0e9aa2d3cd42574946dbe2693193ac06b86c 100644
|
| --- a/third_party/google_input_tools/src/chrome/os/inputview/elements/content/gesturecanvasview.js
|
| +++ b/third_party/google_input_tools/src/chrome/os/inputview/elements/content/gesturecanvasview.js
|
| @@ -44,6 +44,13 @@ i18n.input.chrome.inputview.elements.content.GestureCanvasView =
|
| ElementType.GESTURE_CANVAS_VIEW, opt_eventTarget);
|
|
|
| /**
|
| + * Flag used to indicate whether or not gesturing is currently occuring.
|
| + *
|
| + * @type {boolean}
|
| + */
|
| + this.isGesturing = false;
|
| +
|
| + /**
|
| * Actual canvas for drawing the gesture trail.
|
| *
|
| * @private {!Element}
|
| @@ -343,12 +350,23 @@ GestureCanvasView.prototype.resize = function(width, height) {
|
| * @param {!i18n.input.chrome.inputview.events.DragEvent} e Drag event to draw.
|
| */
|
| GestureCanvasView.prototype.addPoint = function(e) {
|
| + // Check if the last stroke was active before this point in order to determine
|
| + // if the user is gesturing. Only check the last stroke and not all the
|
| + // strokes because all previous strokes might be rendering/degrading, but that
|
| + // does not determine if the user is currently gesturing.
|
| + var was_active = this.latestStrokeActive_();
|
| +
|
| if (this.strokeList_.length == 0) {
|
| this.strokeList_.push(new GestureStroke());
|
| }
|
|
|
| this.strokeList_[this.strokeList_.length - 1].points.push(
|
| this.createGesturePoint_(e));
|
| +
|
| + // If the new point |e| activated the last stroke, set gesturing to true.
|
| + if (!was_active && this.latestStrokeActive_()) {
|
| + this.isGesturing = true;
|
| + }
|
| };
|
|
|
|
|
| @@ -362,21 +380,16 @@ GestureCanvasView.prototype.clear = function() {
|
|
|
|
|
| /**
|
| - * Returns true iff there is a stroke that is currently active.
|
| + * Returns true iff the last stroke is currently active.
|
| *
|
| - * @return {boolean} Whether or not there was an active stroke.
|
| + * @return {boolean} Whether or not the last stroke is active.
|
| + * @private
|
| */
|
| -GestureCanvasView.prototype.hasActiveStroke = function() {
|
| - for (var i = 0; i < this.strokeList_.length; i++) {
|
| - // TODO(stevet): Fix this approximation with a change that takes into
|
| - // account strokes that are still active because they are degrading, but the
|
| - // user has already finished the gesture (i.e. touched up).
|
| - if (this.strokeList_[i].isActive()) {
|
| - return true;
|
| - }
|
| +GestureCanvasView.prototype.latestStrokeActive_ = function() {
|
| + if (this.strokeList_.length == 0) {
|
| + return false;
|
| }
|
| -
|
| - return false;
|
| + return this.strokeList_[this.strokeList_.length - 1].isActive();
|
| };
|
|
|
|
|
| @@ -396,6 +409,19 @@ GestureCanvasView.prototype.startStroke = function(e) {
|
|
|
|
|
| /**
|
| + * Ends the current gesture.
|
| + *
|
| + * @param {!i18n.input.chrome.inputview.events.PointerEvent} e Final pointer
|
| + * event to handle.
|
| + */
|
| +GestureCanvasView.prototype.endStroke = function(e) {
|
| + // TODO(stevet): Ensure that this gets called even when the final touch event
|
| + // is not on the client.
|
| + this.isGesturing = false;
|
| +};
|
| +
|
| +
|
| +/**
|
| * The gesture trail animation function.
|
| *
|
| * @private
|
|
|