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

Unified Diff: third_party/google_input_tools/src/chrome/os/inputview/handler/pointeractionbundle.js

Issue 1046933003: Updates google-input-tools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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: third_party/google_input_tools/src/chrome/os/inputview/handler/pointeractionbundle.js
diff --git a/third_party/google_input_tools/src/chrome/os/inputview/handler/pointeractionbundle.js b/third_party/google_input_tools/src/chrome/os/inputview/handler/pointeractionbundle.js
index 8aa5d67645b0926c9757320bdb448e362bf314ec..e2e3adde1d3dbc2b6bf7904437d209920309d660 100644
--- a/third_party/google_input_tools/src/chrome/os/inputview/handler/pointeractionbundle.js
+++ b/third_party/google_input_tools/src/chrome/os/inputview/handler/pointeractionbundle.js
@@ -14,7 +14,6 @@
goog.provide('i18n.input.chrome.inputview.handler.PointerActionBundle');
goog.require('goog.Timer');
-goog.require('goog.dom');
goog.require('goog.events.EventTarget');
goog.require('goog.events.EventType');
goog.require('goog.math.Coordinate');
@@ -35,7 +34,7 @@ goog.scope(function() {
/**
* The handler for long press.
*
- * @param {i18n.input.chrome.inputview.elements.Element} view The view for this
+ * @param {!i18n.input.chrome.inputview.elements.Element} view The view for this
* pointer event.
* @param {goog.events.EventTarget=} opt_parentEventTarget The parent event
* target.
@@ -50,7 +49,7 @@ i18n.input.chrome.inputview.handler.PointerActionBundle = function(view,
/**
* The target.
*
- * @type {i18n.input.chrome.inputview.elements.Element}
+ * @type {!i18n.input.chrome.inputview.elements.Element}
*/
this.view = view;
@@ -156,6 +155,7 @@ PointerActionBundle.prototype.isFlickering_ = false;
* @param {!Touch | !Event} e .
*/
PointerActionBundle.prototype.handlePointerMove = function(e) {
+ var identifier = Util.getEventIdentifier(e);
var direction = 0;
var deltaX = this.swipeState_.previousX == 0 ? 0 : (e.pageX -
this.swipeState_.previousX);
@@ -165,7 +165,7 @@ PointerActionBundle.prototype.handlePointerMove = function(e) {
this.swipeState_.offsetY += deltaY;
this.dispatchEvent(new i18n.input.chrome.inputview.events.DragEvent(
this.view, direction, /** @type {!Node} */ (e.target),
- e.pageX, e.pageY, deltaX, deltaY));
+ e.pageX, e.pageY, deltaX, deltaY, identifier));
var minimumSwipeDist = PointerActionBundle.
MINIMUM_SWIPE_DISTANCE_;
@@ -196,15 +196,14 @@ PointerActionBundle.prototype.handlePointerMove = function(e) {
goog.Timer.clear(this.longPressTimer_);
this.dispatchEvent(new i18n.input.chrome.inputview.events.SwipeEvent(
this.view, direction, /** @type {!Node} */ (e.target),
- e.pageX, e.pageY));
+ e.pageX, e.pageY, identifier));
var currentTargetView = Util.getView(this.currentTarget_);
- if (this.view) {
- this.isFlickering_ = !this.isLongPressing_ && !!(this.view.pointerConfig.
- flickerDirection & direction) && currentTargetView == this.view;
- }
+ this.isFlickering_ = !this.isLongPressing_ && !!(this.view.pointerConfig.
+ flickerDirection & direction) && currentTargetView == this.view;
}
- this.maybeSwitchTarget_(e);
+ this.maybeSwitchTarget_(
+ new goog.math.Coordinate(e.pageX, e.pageY), identifier);
};
@@ -212,12 +211,13 @@ PointerActionBundle.prototype.handlePointerMove = function(e) {
* If the target is switched to a new one, sends out a pointer_over for the new
* target and sends out a pointer_out for the old target.
*
- * @param {!Touch | !Event | !goog.events.BrowserEvent} e .
+ * @param {!goog.math.Coordinate} pageOffset .
+ * @param {number} identifier .
* @private
*/
-PointerActionBundle.prototype.maybeSwitchTarget_ = function(e) {
+PointerActionBundle.prototype.maybeSwitchTarget_ = function(pageOffset,
+ identifier) {
if (!this.isFlickering_) {
- var pageOffset = this.getPageOffset_(e);
var actualTarget = document.elementFromPoint(pageOffset.x, pageOffset.y);
var currentTargetView = Util.getView(this.currentTarget_);
var actualTargetView = Util.getView(actualTarget);
@@ -226,13 +226,13 @@ PointerActionBundle.prototype.maybeSwitchTarget_ = function(e) {
this.dispatchEvent(new i18n.input.chrome.inputview.events.PointerEvent(
currentTargetView,
i18n.input.chrome.inputview.events.EventType.POINTER_OUT,
- this.currentTarget_, pageOffset.x, pageOffset.y));
+ this.currentTarget_, pageOffset.x, pageOffset.y, identifier));
}
if (actualTargetView) {
this.dispatchEvent(new i18n.input.chrome.inputview.events.PointerEvent(
actualTargetView,
i18n.input.chrome.inputview.events.EventType.POINTER_OVER,
- actualTarget, pageOffset.x, pageOffset.y));
+ actualTarget, pageOffset.x, pageOffset.y, identifier));
}
this.currentTarget_ = actualTarget;
}
@@ -248,16 +248,17 @@ PointerActionBundle.prototype.maybeSwitchTarget_ = function(e) {
PointerActionBundle.prototype.handlePointerUp = function(e) {
goog.Timer.clear(this.longPressTimer_);
var pageOffset = this.getPageOffset_(e);
+ var identifier = Util.getEventIdentifier(e);
this.dispatchEvent(new i18n.input.chrome.inputview.events.PointerEvent(
this.view, i18n.input.chrome.inputview.events.EventType.LONG_PRESS_END,
- e.target, pageOffset.x, pageOffset.y));
+ e.target, pageOffset.x, pageOffset.y, identifier));
if (this.isDBLClicking_) {
this.dispatchEvent(new i18n.input.chrome.inputview.events.PointerEvent(
this.view, i18n.input.chrome.inputview.events.EventType.
- DOUBLE_CLICK_END, e.target, pageOffset.x, pageOffset.y));
+ DOUBLE_CLICK_END, e.target, pageOffset.x, pageOffset.y, identifier));
} else if (!(this.isLongPressing_ && this.view.pointerConfig.
longPressWithoutPointerUp)) {
- this.maybeSwitchTarget_(e);
+ this.maybeSwitchTarget_(pageOffset, identifier);
var view = Util.getView(this.currentTarget_);
var target = this.currentTarget_;
if (this.isFlickering_) {
@@ -271,12 +272,13 @@ PointerActionBundle.prototype.handlePointerUp = function(e) {
// POINTER_UP event to keyboard to commit the selected accent character.
this.dispatchEvent(new i18n.input.chrome.inputview.events.PointerEvent(
view, i18n.input.chrome.inputview.events.EventType.POINTER_UP,
- target, pageOffset.x, pageOffset.y, this.pointerUpTimeStamp_));
+ target, pageOffset.x, pageOffset.y, identifier,
+ this.pointerUpTimeStamp_));
}
if (Util.getView(this.currentTarget_) == this.view) {
this.dispatchEvent(new i18n.input.chrome.inputview.events.PointerEvent(
this.view, i18n.input.chrome.inputview.events.EventType.CLICK,
- e.target, pageOffset.x, pageOffset.y));
+ e.target, pageOffset.x, pageOffset.y, identifier));
}
this.isDBLClicking_ = false;
this.isLongPressing_ = false;
@@ -301,16 +303,17 @@ PointerActionBundle.prototype.cancelDoubleClick = function() {
PointerActionBundle.prototype.handlePointerDown = function(e) {
this.currentTarget_ = e.target;
goog.Timer.clear(this.longPressTimer_);
- if (e.type != goog.events.EventType.MOUSEDOWN) {
- // Don't trigger long press for mouse event.
- this.maybeTriggerKeyDownLongPress_(e);
+ var identifier = Util.getEventIdentifier(e);
+ if (e.type == goog.events.EventType.TOUCHSTART) {
+ this.maybeTriggerKeyDownLongPress_(e, identifier);
}
- this.maybeHandleDBLClick_(e);
+ this.maybeHandleDBLClick_(e, identifier);
if (!this.isDBLClicking_) {
var pageOffset = this.getPageOffset_(e);
this.dispatchEvent(new i18n.input.chrome.inputview.events.PointerEvent(
this.view, i18n.input.chrome.inputview.events.EventType.POINTER_DOWN,
- e.target, pageOffset.x, pageOffset.y, this.pointerDownTimeStamp_));
+ e.target, pageOffset.x, pageOffset.y, identifier,
+ this.pointerDownTimeStamp_));
}
};
@@ -318,19 +321,11 @@ PointerActionBundle.prototype.handlePointerDown = function(e) {
/**
* Gets the page offset from the event which may be mouse event or touch event.
*
- * @param {!goog.events.BrowserEvent | !Touch | !Event} e .
+ * @param {!goog.events.BrowserEvent} e .
* @return {!goog.math.Coordinate} .
* @private
*/
PointerActionBundle.prototype.getPageOffset_ = function(e) {
- if (e.pageX && e.pageY) {
- return new goog.math.Coordinate(e.pageX, e.pageY);
- }
-
- if (!e.getBrowserEvent) {
- return new goog.math.Coordinate(0, 0);
- }
-
var nativeEvt = e.getBrowserEvent();
if (nativeEvt.pageX && nativeEvt.pageY) {
return new goog.math.Coordinate(nativeEvt.pageX, nativeEvt.pageY);
@@ -354,13 +349,15 @@ PointerActionBundle.prototype.getPageOffset_ = function(e) {
* Maybe triggers the long press timer when pointer down.
*
* @param {!goog.events.BrowserEvent} e The event.
+ * @param {number} identifier .
* @private
*/
-PointerActionBundle.prototype.maybeTriggerKeyDownLongPress_ = function(e) {
+PointerActionBundle.prototype.maybeTriggerKeyDownLongPress_ = function(e,
+ identifier) {
if (this.view && (this.view.pointerConfig.longPressWithPointerUp ||
this.view.pointerConfig.longPressWithoutPointerUp)) {
this.longPressTimer_ = goog.Timer.callOnce(
- goog.bind(this.triggerLongPress_, this, e),
+ goog.bind(this.triggerLongPress_, this, e, identifier),
this.view.pointerConfig.longPressDelay, this);
}
};
@@ -370,9 +367,10 @@ PointerActionBundle.prototype.maybeTriggerKeyDownLongPress_ = function(e) {
* Maybe handle the double click.
*
* @param {!goog.events.BrowserEvent} e .
+ * @param {number} identifier .
* @private
*/
-PointerActionBundle.prototype.maybeHandleDBLClick_ = function(e) {
+PointerActionBundle.prototype.maybeHandleDBLClick_ = function(e, identifier) {
if (this.view && this.view.pointerConfig.dblClick) {
var timeInMs = new Date().getTime();
var interval = this.view.pointerConfig.dblClickDelay ||
@@ -381,7 +379,7 @@ PointerActionBundle.prototype.maybeHandleDBLClick_ = function(e) {
if ((timeInMs - this.pointerDownTimeStamp_) < interval) {
this.dispatchEvent(new i18n.input.chrome.inputview.events.PointerEvent(
this.view, i18n.input.chrome.inputview.events.EventType.DOUBLE_CLICK,
- e.target, nativeEvt.pageX, nativeEvt.pageY));
+ e.target, nativeEvt.pageX, nativeEvt.pageY, identifier));
this.isDBLClicking_ = true;
}
this.pointerDownTimeStamp_ = timeInMs;
@@ -393,16 +391,17 @@ PointerActionBundle.prototype.maybeHandleDBLClick_ = function(e) {
* Triggers long press event.
*
* @param {!goog.events.BrowserEvent} e The event.
+ * @param {number} identifier .
* @private
*/
-PointerActionBundle.prototype.triggerLongPress_ = function(e) {
+PointerActionBundle.prototype.triggerLongPress_ = function(e, identifier) {
var nativeEvt = e.getBrowserEvent();
if (nativeEvt.touches.length > 1) {
return;
}
this.dispatchEvent(new i18n.input.chrome.inputview.events.PointerEvent(
this.view, i18n.input.chrome.inputview.events.EventType.LONG_PRESS,
- e.target, nativeEvt.pageX, nativeEvt.pageY));
+ e.target, nativeEvt.pageX, nativeEvt.pageY, identifier));
this.isLongPressing_ = true;
};

Powered by Google App Engine
This is Rietveld 408576698