Chromium Code Reviews| Index: ui/views/widget/widget.cc |
| diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc |
| index 8a9fa71e538c6a2b82fa221ef19e7288d4e0dfe8..df676de4dd95ad98ba04ee22c44a31e08fb0137d 100644 |
| --- a/ui/views/widget/widget.cc |
| +++ b/ui/views/widget/widget.cc |
| @@ -168,7 +168,6 @@ Widget::Widget() |
| is_top_level_(false), |
| native_widget_initialized_(false), |
| native_widget_destroyed_(false), |
| - is_mouse_button_pressed_(false), |
| ignore_capture_loss_(false), |
| last_mouse_event_was_move_(false), |
| auto_release_capture_(true), |
| @@ -351,10 +350,6 @@ void Widget::Init(const InitParams& in_params) { |
| AsNativeWidgetPrivate(); |
| root_view_.reset(CreateRootView()); |
| default_theme_provider_.reset(new ui::DefaultThemeProvider); |
| - if (params.type == InitParams::TYPE_MENU) { |
| - is_mouse_button_pressed_ = |
| - internal::NativeWidgetPrivate::IsMouseButtonDown(); |
| - } |
| native_widget_->InitNativeWidget(params); |
| if (RequiresNonClientView(params.type)) { |
| non_client_view_ = new NonClientView; |
| @@ -948,8 +943,6 @@ void Widget::SetCapture(View* view) { |
| return; |
| } |
| - if (internal::NativeWidgetPrivate::IsMouseButtonDown()) |
| - is_mouse_button_pressed_ = true; |
| root_view_->SetMouseHandler(view); |
| } |
| @@ -1193,6 +1186,7 @@ void Widget::OnMouseEvent(ui::MouseEvent* event) { |
| View* root_view = GetRootView(); |
| switch (event->type()) { |
| case ui::ET_MOUSE_PRESSED: { |
| + // Terry - move this out of each case to before switch? |
|
sadrul
2014/09/25 16:19:38
Sounds like a good plan, yeah.
tdanderson
2014/09/26 18:49:40
Done.
|
| last_mouse_event_was_move_ = false; |
| // We may get deleted by the time we return from OnMousePressed. So we |
| @@ -1212,7 +1206,6 @@ void Widget::OnMouseEvent(ui::MouseEvent* event) { |
| if (root_view && root_view->OnMousePressed(*event) && |
| widget_deletion_observer.IsWidgetAlive() && IsVisible() && |
| internal::NativeWidgetPrivate::IsMouseButtonDown()) { |
| - is_mouse_button_pressed_ = true; |
| if (!native_widget_->HasCapture()) |
| native_widget_->SetCapture(); |
| event->SetHandled(); |
| @@ -1222,7 +1215,6 @@ void Widget::OnMouseEvent(ui::MouseEvent* event) { |
| case ui::ET_MOUSE_RELEASED: |
| last_mouse_event_was_move_ = false; |
| - is_mouse_button_pressed_ = false; |
| // Release capture first, to avoid confusion if OnMouseReleased blocks. |
| if (auto_release_capture_ && native_widget_->HasCapture()) { |
| base::AutoReset<bool> resetter(&ignore_capture_loss_, true); |
| @@ -1235,13 +1227,8 @@ void Widget::OnMouseEvent(ui::MouseEvent* event) { |
| return; |
| case ui::ET_MOUSE_MOVED: |
| - case ui::ET_MOUSE_DRAGGED: |
| - if (native_widget_->HasCapture() && is_mouse_button_pressed_) { |
| - last_mouse_event_was_move_ = false; |
| - if (root_view) |
| - root_view->OnMouseDragged(*event); |
| - } else if (!last_mouse_event_was_move_ || |
| - last_mouse_event_position_ != event->location()) { |
| + if (!last_mouse_event_was_move_ || |
| + last_mouse_event_position_ != event->location()) { |
| last_mouse_event_position_ = event->location(); |
| last_mouse_event_was_move_ = true; |
| if (root_view) |
| @@ -1249,6 +1236,12 @@ void Widget::OnMouseEvent(ui::MouseEvent* event) { |
| } |
| return; |
| + case ui::ET_MOUSE_DRAGGED: |
| + last_mouse_event_was_move_ = false; |
| + if (root_view) |
| + root_view->OnMouseDragged(*event); |
| + return; |
| + |
| case ui::ET_MOUSE_EXITED: |
| last_mouse_event_was_move_ = false; |
| if (root_view) |
| @@ -1273,7 +1266,6 @@ void Widget::OnMouseCaptureLost() { |
| View* root_view = GetRootView(); |
| if (root_view) |
| root_view->OnMouseCaptureLost(); |
| - is_mouse_button_pressed_ = false; |
| } |
| void Widget::OnScrollEvent(ui::ScrollEvent* event) { |