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) { |