Index: ui/views/controls/resize_area.cc |
diff --git a/ui/views/controls/resize_area.cc b/ui/views/controls/resize_area.cc |
index 3698078d709d6986907ef91eabafdb0e110cc3e2..06c0325fea38f89ea9da767478384578afb8c526 100644 |
--- a/ui/views/controls/resize_area.cc |
+++ b/ui/views/controls/resize_area.cc |
@@ -14,9 +14,6 @@ namespace views { |
const char ResizeArea::kViewClassName[] = "ResizeArea"; |
-//////////////////////////////////////////////////////////////////////////////// |
-// ResizeArea |
- |
ResizeArea::ResizeArea(ResizeAreaDelegate* delegate) |
: delegate_(delegate), |
initial_position_(0) { |
@@ -34,17 +31,25 @@ gfx::NativeCursor ResizeArea::GetCursor(const ui::MouseEvent& event) { |
: gfx::kNullCursor; |
} |
+void ResizeArea::OnGestureEvent(ui::GestureEvent* event) { |
+ if (event->type() == ui::ET_GESTURE_TAP_DOWN) { |
+ SetInitialPosition(event->x()); |
+ event->SetHandled(); |
+ } else if (event->type() == ui::ET_GESTURE_SCROLL_BEGIN || |
+ event->type() == ui::ET_GESTURE_SCROLL_UPDATE) { |
+ ReportResizeAmount(event->x(), false); |
+ event->SetHandled(); |
+ } else if (event->type() == ui::ET_GESTURE_END) { |
+ ReportResizeAmount(event->x(), true); |
+ event->SetHandled(); |
+ } |
+} |
+ |
bool ResizeArea::OnMousePressed(const ui::MouseEvent& event) { |
if (!event.IsOnlyLeftMouseButton()) |
return false; |
- // The resize area obviously will move once you start dragging so we need to |
- // convert coordinates to screen coordinates so that we don't lose our |
- // bearings. |
- gfx::Point point(event.x(), 0); |
- View::ConvertPointToScreen(this, &point); |
- initial_position_ = point.x(); |
- |
+ SetInitialPosition(event.x()); |
return true; |
} |
@@ -76,4 +81,10 @@ void ResizeArea::ReportResizeAmount(int resize_amount, bool last_update) { |
last_update); |
} |
+void ResizeArea::SetInitialPosition(int event_x) { |
+ gfx::Point point(event_x, 0); |
+ View::ConvertPointToScreen(this, &point); |
+ initial_position_ = point.x(); |
+} |
+ |
} // namespace views |