Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(180)

Side by Side Diff: ui/views/widget/widget.cc

Issue 23533030: rAc: Enforce a 3 second grace period for generated card bubble. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add a test Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/widget/widget.h" 5 #include "ui/views/widget/widget.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 disable_inactive_rendering_(false), 166 disable_inactive_rendering_(false),
167 widget_closed_(false), 167 widget_closed_(false),
168 saved_show_state_(ui::SHOW_STATE_DEFAULT), 168 saved_show_state_(ui::SHOW_STATE_DEFAULT),
169 focus_on_creation_(true), 169 focus_on_creation_(true),
170 is_top_level_(false), 170 is_top_level_(false),
171 native_widget_initialized_(false), 171 native_widget_initialized_(false),
172 native_widget_destroyed_(false), 172 native_widget_destroyed_(false),
173 is_mouse_button_pressed_(false), 173 is_mouse_button_pressed_(false),
174 is_touch_down_(false), 174 is_touch_down_(false),
175 last_mouse_event_was_move_(false), 175 last_mouse_event_was_move_(false),
176 auto_release_capture_(true),
176 root_layers_dirty_(false), 177 root_layers_dirty_(false),
177 movement_disabled_(false) { 178 movement_disabled_(false) {
178 } 179 }
179 180
180 Widget::~Widget() { 181 Widget::~Widget() {
181 DestroyRootView(); 182 DestroyRootView();
182 if (ownership_ == InitParams::WIDGET_OWNS_NATIVE_WIDGET) { 183 if (ownership_ == InitParams::WIDGET_OWNS_NATIVE_WIDGET) {
183 delete native_widget_; 184 delete native_widget_;
184 } else { 185 } else {
185 DCHECK(native_widget_destroyed_) 186 DCHECK(native_widget_destroyed_)
(...skipping 967 matching lines...) Expand 10 before | Expand all | Expand 10 after
1153 if (!native_widget_->HasCapture()) 1154 if (!native_widget_->HasCapture())
1154 native_widget_->SetCapture(); 1155 native_widget_->SetCapture();
1155 event->SetHandled(); 1156 event->SetHandled();
1156 } 1157 }
1157 return; 1158 return;
1158 } 1159 }
1159 case ui::ET_MOUSE_RELEASED: 1160 case ui::ET_MOUSE_RELEASED:
1160 last_mouse_event_was_move_ = false; 1161 last_mouse_event_was_move_ = false;
1161 is_mouse_button_pressed_ = false; 1162 is_mouse_button_pressed_ = false;
1162 // Release capture first, to avoid confusion if OnMouseReleased blocks. 1163 // Release capture first, to avoid confusion if OnMouseReleased blocks.
1163 if (native_widget_->HasCapture() && 1164 if (auto_release_capture_ && native_widget_->HasCapture())
1164 ShouldReleaseCaptureOnMouseReleased()) {
1165 native_widget_->ReleaseCapture(); 1165 native_widget_->ReleaseCapture();
1166 }
1167 if (root_view) 1166 if (root_view)
1168 root_view->OnMouseReleased(*event); 1167 root_view->OnMouseReleased(*event);
1169 if ((event->flags() & ui::EF_IS_NON_CLIENT) == 0) 1168 if ((event->flags() & ui::EF_IS_NON_CLIENT) == 0)
1170 event->SetHandled(); 1169 event->SetHandled();
1171 return; 1170 return;
1172 case ui::ET_MOUSE_MOVED: 1171 case ui::ET_MOUSE_MOVED:
1173 case ui::ET_MOUSE_DRAGGED: 1172 case ui::ET_MOUSE_DRAGGED:
1174 if (native_widget_->HasCapture() && is_mouse_button_pressed_) { 1173 if (native_widget_->HasCapture() && is_mouse_button_pressed_) {
1175 last_mouse_event_was_move_ = false; 1174 last_mouse_event_was_move_ = false;
1176 if (root_view) 1175 if (root_view)
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1224 case ui::ET_GESTURE_TAP_DOWN: 1223 case ui::ET_GESTURE_TAP_DOWN:
1225 is_touch_down_ = true; 1224 is_touch_down_ = true;
1226 // We explicitly don't capture here. Not capturing enables multiple 1225 // We explicitly don't capture here. Not capturing enables multiple
1227 // widgets to get tap events at the same time. Views (such as tab 1226 // widgets to get tap events at the same time. Views (such as tab
1228 // dragging) may explicitly capture. 1227 // dragging) may explicitly capture.
1229 break; 1228 break;
1230 1229
1231 case ui::ET_GESTURE_END: 1230 case ui::ET_GESTURE_END:
1232 if (event->details().touch_points() == 1) { 1231 if (event->details().touch_points() == 1) {
1233 is_touch_down_ = false; 1232 is_touch_down_ = false;
1234 if (ShouldReleaseCaptureOnMouseReleased()) 1233 if (auto_release_capture_)
1235 ReleaseCapture(); 1234 ReleaseCapture();
1236 } 1235 }
1237 break; 1236 break;
1238 1237
1239 default: 1238 default:
1240 break; 1239 break;
1241 } 1240 }
1242 static_cast<internal::RootView*>(GetRootView())->DispatchGestureEvent(event); 1241 static_cast<internal::RootView*>(GetRootView())->DispatchGestureEvent(event);
1243 } 1242 }
1244 1243
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1307 void Widget::DestroyRootView() { 1306 void Widget::DestroyRootView() {
1308 non_client_view_ = NULL; 1307 non_client_view_ = NULL;
1309 root_view_.reset(); 1308 root_view_.reset();
1310 // Input method has to be destroyed before focus manager. 1309 // Input method has to be destroyed before focus manager.
1311 input_method_.reset(); 1310 input_method_.reset();
1312 } 1311 }
1313 1312
1314 //////////////////////////////////////////////////////////////////////////////// 1313 ////////////////////////////////////////////////////////////////////////////////
1315 // Widget, private: 1314 // Widget, private:
1316 1315
1317 bool Widget::ShouldReleaseCaptureOnMouseReleased() const {
1318 return true;
1319 }
1320
1321 void Widget::SetInactiveRenderingDisabled(bool value) { 1316 void Widget::SetInactiveRenderingDisabled(bool value) {
1322 if (value == disable_inactive_rendering_) 1317 if (value == disable_inactive_rendering_)
1323 return; 1318 return;
1324 1319
1325 disable_inactive_rendering_ = value; 1320 disable_inactive_rendering_ = value;
1326 if (non_client_view_) 1321 if (non_client_view_)
1327 non_client_view_->SetInactiveRenderingDisabled(value); 1322 non_client_view_->SetInactiveRenderingDisabled(value);
1328 native_widget_->SetInactiveRenderingDisabled(value); 1323 native_widget_->SetInactiveRenderingDisabled(value);
1329 } 1324 }
1330 1325
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
1427 1422
1428 //////////////////////////////////////////////////////////////////////////////// 1423 ////////////////////////////////////////////////////////////////////////////////
1429 // internal::NativeWidgetPrivate, NativeWidget implementation: 1424 // internal::NativeWidgetPrivate, NativeWidget implementation:
1430 1425
1431 internal::NativeWidgetPrivate* NativeWidgetPrivate::AsNativeWidgetPrivate() { 1426 internal::NativeWidgetPrivate* NativeWidgetPrivate::AsNativeWidgetPrivate() {
1432 return this; 1427 return this;
1433 } 1428 }
1434 1429
1435 } // namespace internal 1430 } // namespace internal
1436 } // namespace views 1431 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698