Commit 3f488080 authored by hshi's avatar hshi Committed by Commit bot

ash::CursorWindowController: handle ui::kCursorNone

Setting cursor type to ui::kCursorNone is treated the same as setting
visibility to false.

However note that it is necessary to track the last requested cursor
visibility separately.

BUG=chrome-os-partner:30313
TEST=verify that large cursor disappears in Youtube full-screen mode

Review URL: https://codereview.chromium.org/980453002

Cr-Commit-Position: refs/heads/master@{#319018}
parent d87b7836
......@@ -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
......@@ -60,6 +60,9 @@ class ASH_EXPORT CursorWindowController {
// Updates cursor image based on current cursor state.
void UpdateCursorImage();
// Hides/shows cursor window based on current cursor state.
void UpdateCursorVisibility();
bool is_cursor_compositing_enabled_;
aura::Window* container_;
......@@ -69,6 +72,9 @@ class ASH_EXPORT CursorWindowController {
// The native_type of the cursor, see definitions in cursor.h
int cursor_type_;
// The last requested cursor visibility.
bool visible_;
ui::CursorSetType cursor_set_;
gfx::Display::Rotation cursor_rotation_;
gfx::Point hot_point_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment