| Index: ui/aura/desktop/desktop_cursor_client.cc
|
| diff --git a/ui/aura/desktop/desktop_cursor_client.cc b/ui/aura/desktop/desktop_cursor_client.cc
|
| index 7077483f3657a83ed9ce0d01dd7f48c09b607fed..3086afb1920609b84b2418fdf657458d2d8d8c3d 100644
|
| --- a/ui/aura/desktop/desktop_cursor_client.cc
|
| +++ b/ui/aura/desktop/desktop_cursor_client.cc
|
| @@ -11,23 +11,34 @@ namespace aura {
|
|
|
| DesktopCursorClient::DesktopCursorClient(aura::RootWindow* window)
|
| : root_window_(window),
|
| - cursor_loader_(ui::CursorLoader::Create()) {
|
| + cursor_loader_(ui::CursorLoader::Create()),
|
| + current_cursor_(ui::kCursorNone),
|
| + cursor_visible_(true) {
|
| }
|
|
|
| DesktopCursorClient::~DesktopCursorClient() {
|
| }
|
|
|
| void DesktopCursorClient::SetCursor(gfx::NativeCursor cursor) {
|
| - cursor_loader_->SetPlatformCursor(&cursor);
|
| - root_window_->SetCursor(cursor);
|
| + current_cursor_ = cursor;
|
| + cursor_loader_->SetPlatformCursor(¤t_cursor_);
|
| + if (cursor_visible_)
|
| + root_window_->SetCursor(current_cursor_);
|
| }
|
|
|
| void DesktopCursorClient::ShowCursor(bool show) {
|
| - root_window_->ShowCursor(show);
|
| + if (cursor_visible_ == show)
|
| + return;
|
| + cursor_visible_ = show;
|
| + if (cursor_visible_)
|
| + root_window_->SetCursor(current_cursor_);
|
| + else
|
| + root_window_->SetCursor(ui::kCursorNone);
|
| + root_window_->OnCursorVisibilityChanged(cursor_visible_);
|
| }
|
|
|
| bool DesktopCursorClient::IsCursorVisible() const {
|
| - return root_window_->cursor_shown();
|
| + return cursor_visible_;
|
| }
|
|
|
| void DesktopCursorClient::SetDeviceScaleFactor(float device_scale_factor) {
|
|
|