Index: ui/views/widget/widget.cc |
diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc |
index d8b203080719216c6279f60c9e4d4af43f88eefe..82a2f538909cf6b12c5b6a249a17a4bb25d2c579 100644 |
--- a/ui/views/widget/widget.cc |
+++ b/ui/views/widget/widget.cc |
@@ -938,11 +938,17 @@ NativeWidget* Widget::native_widget() { |
} |
void Widget::SetCapture(View* view) { |
+ if (!native_widget_->HasCapture()) { |
+ native_widget_->SetCapture(); |
+ |
+ // Early return if setting capture was unsuccessful. |
+ if (!native_widget_->HasCapture()) |
+ return; |
+ } |
+ |
if (internal::NativeWidgetPrivate::IsMouseButtonDown()) |
is_mouse_button_pressed_ = true; |
root_view_->SetMouseHandler(view); |
- if (!native_widget_->HasCapture()) |
- native_widget_->SetCapture(); |
} |
void Widget::ReleaseCapture() { |