| Index: ui/chromeos/touch_exploration_controller.cc
|
| diff --git a/ui/chromeos/touch_exploration_controller.cc b/ui/chromeos/touch_exploration_controller.cc
|
| index 173da5b6df8a510ccbbded3291fc336257f3585e..239f5506b6c54119f597b9515def9a42415cb850 100644
|
| --- a/ui/chromeos/touch_exploration_controller.cc
|
| +++ b/ui/chromeos/touch_exploration_controller.cc
|
| @@ -29,7 +29,8 @@ TouchExplorationController::TouchExplorationController(
|
| state_(NO_FINGERS_DOWN),
|
| event_handler_for_testing_(NULL),
|
| gesture_provider_(this),
|
| - prev_state_(NO_FINGERS_DOWN) {
|
| + prev_state_(NO_FINGERS_DOWN),
|
| + VLOG_on_(true) {
|
| CHECK(root_window);
|
| root_window->GetHost()->GetEventSource()->AddEventRewriter(this);
|
| }
|
| @@ -45,6 +46,13 @@ void TouchExplorationController::CallTapTimerNowForTesting() {
|
| OnTapTimerFired();
|
| }
|
|
|
| +void TouchExplorationController::CallTapTimerNowIfRunningForTesting() {
|
| + if (tap_timer_.IsRunning()) {
|
| + tap_timer_.Stop();
|
| + OnTapTimerFired();
|
| + }
|
| +}
|
| +
|
| void TouchExplorationController::SetEventHandlerForTesting(
|
| ui::EventHandler* event_handler_for_testing) {
|
| event_handler_for_testing_ = event_handler_for_testing;
|
| @@ -58,14 +66,18 @@ bool TouchExplorationController::IsInGestureInProgressStateForTesting() const {
|
| return state_ == GESTURE_IN_PROGRESS;
|
| }
|
|
|
| +void TouchExplorationController::SuppressVLOGsForTesting(bool suppress) {
|
| + VLOG_on_ = !suppress;
|
| +}
|
| +
|
| ui::EventRewriteStatus TouchExplorationController::RewriteEvent(
|
| const ui::Event& event,
|
| scoped_ptr<ui::Event>* rewritten_event) {
|
| if (!event.IsTouchEvent()) {
|
| if (event.IsKeyEvent()) {
|
| const ui::KeyEvent& key_event = static_cast<const ui::KeyEvent&>(event);
|
| - VLOG(0) << "\nKeyboard event: " << key_event.name() << "\n"
|
| - << " Key code: " << key_event.key_code()
|
| + VLOG(0) << "\nKeyboard event: " << key_event.name()
|
| + << "\n Key code: " << key_event.key_code()
|
| << ", Flags: " << key_event.flags()
|
| << ", Is char: " << key_event.is_char();
|
| }
|
| @@ -168,7 +180,7 @@ ui::EventRewriteStatus TouchExplorationController::InNoFingersDown(
|
| VLOG_STATE();
|
| return ui::EVENT_REWRITE_DISCARD;
|
| }
|
| - NOTREACHED() << "Unexpected event type received.";
|
| + NOTREACHED() << "Unexpected event type received: " << event.name();;
|
| return ui::EVENT_REWRITE_CONTINUE;
|
| }
|
|
|
| @@ -222,7 +234,7 @@ ui::EventRewriteStatus TouchExplorationController::InSingleTapPressed(
|
| VLOG_STATE();
|
| return InTouchExploration(event, rewritten_event);
|
| }
|
| - NOTREACHED() << "Unexpected event type received.";
|
| + NOTREACHED() << "Unexpected event type received: " << event.name();;
|
| return ui::EVENT_REWRITE_CONTINUE;
|
| }
|
|
|
| @@ -257,8 +269,17 @@ TouchExplorationController::InSingleTapOrTouchExploreReleased(
|
| state_ = DOUBLE_TAP_PRESSED;
|
| VLOG_STATE();
|
| return ui::EVENT_REWRITE_REWRITTEN;
|
| + } else if (type == ui::ET_TOUCH_RELEASED && !last_touch_exploration_) {
|
| + // If the previous press was discarded, we need to also handle its
|
| + // release.
|
| + if (current_touch_ids_.size() == 0) {
|
| + ResetToNoFingersDown();
|
| + }
|
| + return ui::EVENT_REWRITE_DISCARD;
|
| + } else if (type == ui::ET_TOUCH_MOVED){
|
| + return ui::EVENT_REWRITE_DISCARD;
|
| }
|
| - NOTREACHED() << "Unexpected event type received.";
|
| + NOTREACHED() << "Unexpected event type received: " << event.name();
|
| return ui::EVENT_REWRITE_CONTINUE;
|
| }
|
|
|
| @@ -284,7 +305,7 @@ ui::EventRewriteStatus TouchExplorationController::InDoubleTapPressed(
|
| } else if (type == ui::ET_TOUCH_MOVED) {
|
| return ui::EVENT_REWRITE_DISCARD;
|
| }
|
| - NOTREACHED() << "Unexpected event type received.";
|
| + NOTREACHED() << "Unexpected event type received: " << event.name();
|
| return ui::EVENT_REWRITE_CONTINUE;
|
| }
|
|
|
| @@ -315,7 +336,7 @@ ui::EventRewriteStatus TouchExplorationController::InTouchExploration(
|
| state_ = TOUCH_EXPLORE_RELEASED;
|
| VLOG_STATE();
|
| } else if (type != ui::ET_TOUCH_MOVED) {
|
| - NOTREACHED() << "Unexpected event type received.";
|
| + NOTREACHED() << "Unexpected event type received: " << event.name();
|
| return ui::EVENT_REWRITE_CONTINUE;
|
| }
|
|
|
| @@ -422,7 +443,7 @@ ui::EventRewriteStatus TouchExplorationController::InTwoToOneFinger(
|
| return ui::EVENT_REWRITE_REWRITTEN;
|
| }
|
| }
|
| - NOTREACHED() << "Unexpected event type received";
|
| + NOTREACHED() << "Unexpected event type received: " << event.name();
|
| return ui::EVENT_REWRITE_CONTINUE;
|
| }
|
|
|
| @@ -433,7 +454,7 @@ ui::EventRewriteStatus TouchExplorationController::InPassthrough(
|
|
|
| if (!(type == ui::ET_TOUCH_RELEASED || type == ui::ET_TOUCH_CANCELLED ||
|
| type == ui::ET_TOUCH_MOVED || type == ui::ET_TOUCH_PRESSED)) {
|
| - NOTREACHED() << "Unexpected event type received.";
|
| + NOTREACHED() << "Unexpected event type received: " << event.name();
|
| return ui::EVENT_REWRITE_CONTINUE;
|
| }
|
|
|
| @@ -486,7 +507,7 @@ ui::EventRewriteStatus TouchExplorationController::InTouchExploreSecondPress(
|
| VLOG_STATE();
|
| return ui::EVENT_REWRITE_REWRITTEN;
|
| }
|
| - NOTREACHED() << "Unexpected event type received.";
|
| + NOTREACHED() << "Unexpected event type received: " << event.name();
|
| return ui::EVENT_REWRITE_CONTINUE;
|
| }
|
|
|
| @@ -496,7 +517,7 @@ ui::EventRewriteStatus TouchExplorationController::InWaitForRelease(
|
| ui::EventType type = event.type();
|
| if (!(type == ui::ET_TOUCH_PRESSED || type == ui::ET_TOUCH_MOVED ||
|
| type == ui::ET_TOUCH_RELEASED || type == ui::ET_TOUCH_CANCELLED)) {
|
| - NOTREACHED() << "Unexpected event type received.";
|
| + NOTREACHED() << "Unexpected event type received: " << event.name();
|
| return ui::EVENT_REWRITE_CONTINUE;
|
| }
|
| if (current_touch_ids_.size() == 0) {
|
| @@ -640,6 +661,8 @@ void TouchExplorationController::ResetToNoFingersDown() {
|
| }
|
|
|
| void TouchExplorationController::VlogState(const char* function_name) {
|
| + if (!VLOG_on_)
|
| + return;
|
| if (prev_state_ == state_)
|
| return;
|
| prev_state_ = state_;
|
| @@ -650,6 +673,9 @@ void TouchExplorationController::VlogState(const char* function_name) {
|
|
|
| void TouchExplorationController::VlogEvent(const ui::TouchEvent& touch_event,
|
| const char* function_name) {
|
| + if (!VLOG_on_)
|
| + return;
|
| +
|
| CHECK(touch_event.IsTouchEvent());
|
| if (prev_event_ != NULL &&
|
| prev_event_->type() == touch_event.type() &&
|
|
|