summaryrefslogtreecommitdiffstats
path: root/ui/base
diff options
context:
space:
mode:
authorvarunjain@chromium.org <varunjain@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-07 15:33:05 +0000
committervarunjain@chromium.org <varunjain@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-07 15:33:05 +0000
commitf884a00aa8fe68434d1fe20e4b950bec30a4d2cc (patch)
treed4b494c5539709a26b19369f96321d9f726a0902 /ui/base
parent1fa6de0736dc622711356cde6c08b8f95aa597ce (diff)
downloadchromium_src-f884a00aa8fe68434d1fe20e4b950bec30a4d2cc.zip
chromium_src-f884a00aa8fe68434d1fe20e4b950bec30a4d2cc.tar.gz
chromium_src-f884a00aa8fe68434d1fe20e4b950bec30a4d2cc.tar.bz2
Fix TAP_DOWN gesture event:
1. GESTURE_TAP_DOWN should be sent only on the first TOUCH_PRESSED. 2. New gesture GESTURE_BEGIN shuold be sent on all TOUCH_PRESSED. 3. Rename GESTURE_TAP_UP to GESTURE_END. BUG=131007 TEST=manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=140967 Review URL: https://chromiumcodereview.appspot.com/10533029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141011 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base')
-rw-r--r--ui/base/events.h5
-rw-r--r--ui/base/gestures/gesture_sequence.cc22
-rw-r--r--ui/base/gestures/gesture_sequence.h3
3 files changed, 23 insertions, 7 deletions
diff --git a/ui/base/events.h b/ui/base/events.h
index 6712b19..1d8b2d6 100644
--- a/ui/base/events.h
+++ b/ui/base/events.h
@@ -52,8 +52,9 @@ enum EventType {
ET_GESTURE_SCROLL_END,
ET_GESTURE_SCROLL_UPDATE,
ET_GESTURE_TAP,
- ET_GESTURE_TAP_DOWN, // Sent before any other gesture types.
- ET_GESTURE_TAP_UP, // Sent after any other gestures.
+ ET_GESTURE_TAP_DOWN,
+ ET_GESTURE_BEGIN, // Sent before any other gesture types.
+ ET_GESTURE_END, // Sent after any other gestures.
ET_GESTURE_DOUBLE_TAP,
ET_GESTURE_TWO_FINGER_TAP,
ET_GESTURE_PINCH_BEGIN,
diff --git a/ui/base/gestures/gesture_sequence.cc b/ui/base/gestures/gesture_sequence.cc
index f11d5d1..7e3302c 100644
--- a/ui/base/gestures/gesture_sequence.cc
+++ b/ui/base/gestures/gesture_sequence.cc
@@ -248,6 +248,11 @@ GestureSequence::Gestures* GestureSequence::ProcessTouchEventForGesture(
const int point_id = points_[event.GetTouchId()].point_id();
if (point_id < 0)
return NULL;
+
+ // Send GESTURE_BEGIN for any touch pressed.
+ if (event.GetEventType() == ui::ET_TOUCH_PRESSED)
+ AppendBeginGestureEvent(point, gestures.get());
+
switch (Signature(state_, point_id, event.GetEventType(), false)) {
case GST_NO_GESTURE_FIRST_PRESSED:
TouchDown(event, point, gestures.get());
@@ -351,7 +356,6 @@ GestureSequence::Gestures* GestureSequence::ProcessTouchEventForGesture(
case GST_PINCH_THIRD_PRESSED:
case GST_PINCH_FOURTH_PRESSED:
case GST_PINCH_FIFTH_PRESSED:
- AppendTapDownGestureEvent(point, gestures.get());
pinch_distance_current_ = BoundingBoxDiagonal(bounding_box_);
pinch_distance_start_ = pinch_distance_current_;
break;
@@ -359,7 +363,7 @@ GestureSequence::Gestures* GestureSequence::ProcessTouchEventForGesture(
if (event.GetEventType() == ui::ET_TOUCH_RELEASED ||
event.GetEventType() == ui::ET_TOUCH_CANCELLED)
- AppendTapUpGestureEvent(point, gestures.get());
+ AppendEndGestureEvent(point, gestures.get());
if (state_ != last_state)
DVLOG(4) << "Gesture Sequence"
@@ -476,13 +480,23 @@ void GestureSequence::AppendTapDownGestureEvent(const GesturePoint& point,
point.first_touch_position(),
flags_,
base::Time::FromDoubleT(point.last_touch_time()),
+ 0, 0.f, 1 << point.touch_id()));
+}
+
+void GestureSequence::AppendBeginGestureEvent(const GesturePoint& point,
+ Gestures* gestures) {
+ gestures->push_back(helper_->CreateGestureEvent(
+ ui::ET_GESTURE_BEGIN,
+ point.first_touch_position(),
+ flags_,
+ base::Time::FromDoubleT(point.last_touch_time()),
point_count_, 0.f, 1 << point.touch_id()));
}
-void GestureSequence::AppendTapUpGestureEvent(const GesturePoint& point,
+void GestureSequence::AppendEndGestureEvent(const GesturePoint& point,
Gestures* gestures) {
gestures->push_back(helper_->CreateGestureEvent(
- ui::ET_GESTURE_TAP_UP,
+ ui::ET_GESTURE_END,
point.first_touch_position(),
flags_,
base::Time::FromDoubleT(point.last_touch_time()),
diff --git a/ui/base/gestures/gesture_sequence.h b/ui/base/gestures/gesture_sequence.h
index b976bb3..07d8cc4 100644
--- a/ui/base/gestures/gesture_sequence.h
+++ b/ui/base/gestures/gesture_sequence.h
@@ -78,7 +78,8 @@ class UI_EXPORT GestureSequence {
// Tap gestures.
void AppendTapDownGestureEvent(const GesturePoint& point, Gestures* gestures);
- void AppendTapUpGestureEvent(const GesturePoint& point, Gestures* gestures);
+ void AppendBeginGestureEvent(const GesturePoint& point, Gestures* gestures);
+ void AppendEndGestureEvent(const GesturePoint& point, Gestures* gestures);
void AppendClickGestureEvent(const GesturePoint& point, Gestures* gestures);
void AppendDoubleClickGestureEvent(const GesturePoint& point,
Gestures* gestures);