Index: ui/aura/root_window.cc |
diff --git a/ui/aura/root_window.cc b/ui/aura/root_window.cc |
index 6e111561f4fe116ef29eef89a26690c53209248f..34fe47fe137a2daf7b416a1aea57ae7215405573 100644 |
--- a/ui/aura/root_window.cc |
+++ b/ui/aura/root_window.cc |
@@ -68,9 +68,17 @@ Window* ConsumerToWindow(ui::GestureConsumer* consumer) { |
static_cast<Window*>(consumer) : NULL; |
} |
-void SetLastMouseLocation(const Window* root_window, |
- const gfx::Point& location) { |
- Env::GetInstance()->SetLastMouseLocation(*root_window, location); |
+void SetLastMouseLocation(const RootWindow* root_window, |
+ const gfx::Point& location_in_root) { |
+ client::ScreenPositionClient* client = |
+ client::GetScreenPositionClient(root_window); |
+ if (client) { |
+ gfx::Point location_in_screen = location_in_root; |
+ client->ConvertPointToScreen(root_window, &location_in_screen); |
+ Env::GetInstance()->set_last_mouse_location(location_in_screen); |
+ } else { |
+ Env::GetInstance()->set_last_mouse_location(location_in_root); |
+ } |
} |
RootWindowHost* CreateHost(RootWindow* root_window, |
@@ -206,11 +214,14 @@ void RootWindow::SetCursor(gfx::NativeCursor cursor) { |
} |
void RootWindow::OnCursorVisibilityChanged(bool show) { |
+ host_->OnCursorVisibilityChanged(show); |
+} |
+ |
+void RootWindow::OnMouseEventsEnableStateChanged(bool enabled) { |
// Send entered / exited so that visual state can be updated to match |
- // cursor state. |
- Env::GetInstance()->SetCursorShown(show); |
+ // mouse events state. |
PostMouseMoveEventAfterWindowChange(); |
- host_->OnCursorVisibilityChanged(show); |
+ // TODO(mazda): Add code to disable mouse events when |enabled| == false. |
} |
void RootWindow::MoveCursorTo(const gfx::Point& location_in_dip) { |
@@ -498,7 +509,7 @@ void RootWindow::OnDeviceScaleFactorChanged( |
if (cursor_is_in_bounds && cursor_client) { |
cursor_visible = cursor_client->IsCursorVisible(); |
if (cursor_visible) |
- cursor_client->ShowCursor(false); |
+ cursor_client->HideCursor(); |
} |
host_->OnDeviceScaleFactorChanged(device_scale_factor); |
Window::OnDeviceScaleFactorChanged(device_scale_factor); |
@@ -509,7 +520,7 @@ void RootWindow::OnDeviceScaleFactorChanged( |
cursor_client->SetDeviceScaleFactor(device_scale_factor); |
} |
if (cursor_is_in_bounds && cursor_client && cursor_visible) |
- cursor_client->ShowCursor(true); |
+ cursor_client->ShowCursor(); |
} |
//////////////////////////////////////////////////////////////////////////////// |
@@ -568,10 +579,8 @@ void RootWindow::ReleaseNativeCapture() { |
host_->ReleaseCapture(); |
} |
-gfx::Point RootWindow::QueryMouseLocationForTest() const { |
- gfx::Point point; |
- host_->QueryMouseLocation(&point); |
- return point; |
+bool RootWindow::QueryMouseLocationForTest(gfx::Point* point) const { |
+ return host_->QueryMouseLocation(point); |
} |
//////////////////////////////////////////////////////////////////////////////// |