Index: ui/views/widget/root_view.cc |
diff --git a/ui/views/widget/root_view.cc b/ui/views/widget/root_view.cc |
index efdca920a1694471b3df1b772596eb07105adf0e..298e513b31e67cbd3ab8c1c6971867bbb81756e2 100644 |
--- a/ui/views/widget/root_view.cc |
+++ b/ui/views/widget/root_view.cc |
@@ -274,10 +274,26 @@ void RootView::DispatchGestureEvent(ui::GestureEvent* event) { |
break; |
} |
+ // Terry: A runtime flag will specify whether or not fuzzing should be |
+ // used here (and will possibly also specify an overlap percentage). |
+ bool use_fuzzing = true; |
+ |
+ View* gesture_handler = NULL; |
+ if (use_fuzzing) { |
+ // Terry: account for any possible transformations on rect? |
+ gfx::Rect touch_rect(event->details().bounding_box()); |
+ gfx::Point origin(touch_rect.origin()); |
+ View::ConvertPointFromScreen(this, &origin); |
+ touch_rect.set_origin(origin); |
+ gesture_handler = GetEventHandlerForRect(touch_rect); |
+ } else { |
+ gesture_handler = GetEventHandlerForPoint(event->location()); |
+ } |
+ |
// Walk up the tree until we find a view that wants the gesture event. |
- for (gesture_handler_ = GetEventHandlerForPoint(event->location()); |
- gesture_handler_ && (gesture_handler_ != this); |
- gesture_handler_ = gesture_handler_->parent()) { |
+ for (gesture_handler_ = gesture_handler; |
+ gesture_handler_ && (gesture_handler_ != this); |
+ gesture_handler_ = gesture_handler_->parent()) { |
if (!gesture_handler_->enabled()) { |
// Disabled views eat events but are treated as not handled. |
return; |