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

Side by Side Diff: ui/aura/desktop/desktop_cursor_client.cc

Issue 11035050: Enable CursorManager::LockCursor to lock cursor visibility. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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/aura/desktop/desktop_cursor_client.h" 5 #include "ui/aura/desktop/desktop_cursor_client.h"
6 6
7 #include "ui/aura/root_window.h" 7 #include "ui/aura/root_window.h"
8 #include "ui/base/cursor/cursor_loader.h" 8 #include "ui/base/cursor/cursor_loader.h"
9 9
10 namespace aura { 10 namespace aura {
11 11
12 DesktopCursorClient::DesktopCursorClient(aura::RootWindow* window) 12 DesktopCursorClient::DesktopCursorClient(aura::RootWindow* window)
13 : root_window_(window), 13 : root_window_(window),
14 cursor_loader_(ui::CursorLoader::Create()) { 14 cursor_loader_(ui::CursorLoader::Create()),
15 current_cursor_(ui::kCursorNone),
16 cursor_visible_(true) {
15 } 17 }
16 18
17 DesktopCursorClient::~DesktopCursorClient() { 19 DesktopCursorClient::~DesktopCursorClient() {
18 } 20 }
19 21
20 void DesktopCursorClient::SetCursor(gfx::NativeCursor cursor) { 22 void DesktopCursorClient::SetCursor(gfx::NativeCursor cursor) {
21 cursor_loader_->SetPlatformCursor(&cursor); 23 current_cursor_ = cursor;
22 root_window_->SetCursor(cursor); 24 cursor_loader_->SetPlatformCursor(&current_cursor_);
25 if (cursor_visible_)
26 root_window_->SetCursor(current_cursor_);
23 } 27 }
24 28
25 void DesktopCursorClient::ShowCursor(bool show) { 29 void DesktopCursorClient::ShowCursor(bool show) {
26 root_window_->ShowCursor(show); 30 if (cursor_visible_ == show)
31 return;
32 cursor_visible_ = show;
33 if (cursor_visible_)
34 root_window_->SetCursor(current_cursor_);
35 else
36 root_window_->SetCursor(ui::kCursorNone);
37 root_window_->OnCursorVisibilityChanged(cursor_visible_);
27 } 38 }
28 39
29 bool DesktopCursorClient::IsCursorVisible() const { 40 bool DesktopCursorClient::IsCursorVisible() const {
30 return root_window_->cursor_shown(); 41 return cursor_visible_;
31 } 42 }
32 43
33 void DesktopCursorClient::SetDeviceScaleFactor(float device_scale_factor) { 44 void DesktopCursorClient::SetDeviceScaleFactor(float device_scale_factor) {
34 cursor_loader_->UnloadAll(); 45 cursor_loader_->UnloadAll();
35 cursor_loader_->set_device_scale_factor(device_scale_factor); 46 cursor_loader_->set_device_scale_factor(device_scale_factor);
36 } 47 }
37 48
38 } // namespace aura 49 } // namespace aura
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698