Index: ash/display/cursor_window_controller.cc |
diff --git a/ash/display/cursor_window_controller.cc b/ash/display/cursor_window_controller.cc |
index a59a5d83ad9e1ca97e3dc32fba61c5489d6e1324..ee6b56530c3923c4eba112d578cadc6f5e4be5cb 100644 |
--- a/ash/display/cursor_window_controller.cc |
+++ b/ash/display/cursor_window_controller.cc |
@@ -93,6 +93,7 @@ CursorWindowController::CursorWindowController() |
: is_cursor_compositing_enabled_(false), |
container_(NULL), |
cursor_type_(ui::kCursorNone), |
+ visible_(true), |
cursor_set_(ui::CURSOR_SET_NORMAL), |
cursor_rotation_(gfx::Display::ROTATE_0), |
delegate_(new CursorWindowDelegate()) { |
@@ -169,6 +170,7 @@ void CursorWindowController::SetCursor(gfx::NativeCursor cursor) { |
cursor_type_ = cursor.native_type(); |
cursor_rotation_ = display_.rotation(); |
UpdateCursorImage(); |
+ UpdateCursorVisibility(); |
} |
void CursorWindowController::SetCursorSet(ui::CursorSetType cursor_set) { |
@@ -179,10 +181,8 @@ void CursorWindowController::SetCursorSet(ui::CursorSetType cursor_set) { |
void CursorWindowController::SetVisibility(bool visible) { |
if (!cursor_window_) |
return; |
- if (visible) |
- cursor_window_->Show(); |
- else |
- cursor_window_->Hide(); |
+ visible_ = visible; |
+ UpdateCursorVisibility(); |
} |
void CursorWindowController::SetContainer(aura::Window* container) { |
@@ -204,7 +204,7 @@ void CursorWindowController::SetContainer(aura::Window* container) { |
UpdateCursorImage(); |
container->AddChild(cursor_window_.get()); |
- cursor_window_->Show(); |
+ UpdateCursorVisibility(); |
SetBoundsInScreen(container->bounds()); |
} |
@@ -265,4 +265,14 @@ void CursorWindowController::UpdateCursorImage() { |
} |
} |
+void CursorWindowController::UpdateCursorVisibility() { |
+ if (!cursor_window_) |
+ return; |
+ bool visible = (visible_ && cursor_type_ != ui::kCursorNone); |
+ if (visible) |
+ cursor_window_->Show(); |
+ else |
+ cursor_window_->Hide(); |
+} |
+ |
} // namespace ash |