Index: ui/ozone/platform/dri/dri_window_manager.cc |
diff --git a/ui/ozone/platform/dri/dri_window_manager.cc b/ui/ozone/platform/dri/dri_window_manager.cc |
index 289d93061c8acc37de1487e58291e35198a85b9b..b79351f9b270ea9534b0c1568d921cd48d05c032 100644 |
--- a/ui/ozone/platform/dri/dri_window_manager.cc |
+++ b/ui/ozone/platform/dri/dri_window_manager.cc |
@@ -20,7 +20,9 @@ gfx::PointF GetDefaultCursorLocation(DriWindow* window) { |
} // namespace |
DriWindowManager::DriWindowManager(HardwareCursorDelegate* cursor_delegate) |
- : last_allocated_widget_(0), cursor_(new DriCursor(cursor_delegate, this)) { |
+ : last_allocated_widget_(0), |
+ cursor_(new DriCursor(cursor_delegate, this)), |
+ mouse_events_grabber_(gfx::kNullAcceleratedWidget) { |
} |
DriWindowManager::~DriWindowManager() { |
@@ -51,6 +53,8 @@ void DriWindowManager::RemoveWindow(gfx::AcceleratedWidget widget) { |
if (cursor_->GetCursorWindow() == widget) |
ResetCursorLocation(); |
+ if (mouse_events_grabber_ == widget) |
+ mouse_events_grabber_ = gfx::kNullAcceleratedWidget; |
} |
DriWindow* DriWindowManager::GetWindow(gfx::AcceleratedWidget widget) { |
@@ -74,4 +78,14 @@ void DriWindowManager::ResetCursorLocation() { |
cursor_->MoveCursorTo(cursor_widget, location); |
} |
+void DriWindowManager::GrabMouseEvents(gfx::AcceleratedWidget widget) { |
+ DCHECK(mouse_events_grabber_ == gfx::kNullAcceleratedWidget); |
sadrul
2014/11/11 14:41:14
DCHECK_EQ
Have you tested this with nested messag
llandwerlin-old
2014/11/11 18:29:18
Done.
|
+ mouse_events_grabber_ = widget; |
+} |
+ |
+void DriWindowManager::UngrabMouseEvents(gfx::AcceleratedWidget widget) { |
+ DCHECK(mouse_events_grabber_ == widget); |
sadrul
2014/11/11 14:41:14
ditto
llandwerlin-old
2014/11/11 18:29:18
Moving back to if()s after spang's comment.
|
+ mouse_events_grabber_ = gfx::kNullAcceleratedWidget; |
+} |
+ |
} // namespace ui |