| OLD | NEW |
| 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 "ash/wm/ash_native_cursor_manager.h" | 5 #include "ash/wm/ash_native_cursor_manager.h" |
| 6 | 6 |
| 7 #include "ash/display/cursor_window_controller.h" | 7 #include "ash/display/cursor_window_controller.h" |
| 8 #include "ash/display/display_controller.h" | 8 #include "ash/display/display_controller.h" |
| 9 #include "ash/shell.h" | 9 #include "ash/shell.h" |
| 10 #include "ash/wm/image_cursors.h" | 10 #include "ash/wm/image_cursors.h" |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 image_cursors_(new ImageCursors) { | 56 image_cursors_(new ImageCursors) { |
| 57 } | 57 } |
| 58 | 58 |
| 59 AshNativeCursorManager::~AshNativeCursorManager() { | 59 AshNativeCursorManager::~AshNativeCursorManager() { |
| 60 } | 60 } |
| 61 | 61 |
| 62 | 62 |
| 63 void AshNativeCursorManager::SetNativeCursorEnabled(bool enabled) { | 63 void AshNativeCursorManager::SetNativeCursorEnabled(bool enabled) { |
| 64 native_cursor_enabled_ = enabled; | 64 native_cursor_enabled_ = enabled; |
| 65 | 65 |
| 66 views::corewm::CursorManager* cursor_manager = | 66 ::wm::CursorManager* cursor_manager = |
| 67 Shell::GetInstance()->cursor_manager(); | 67 Shell::GetInstance()->cursor_manager(); |
| 68 SetCursor(cursor_manager->GetCursor(), cursor_manager); | 68 SetCursor(cursor_manager->GetCursor(), cursor_manager); |
| 69 } | 69 } |
| 70 | 70 |
| 71 void AshNativeCursorManager::SetDisplay( | 71 void AshNativeCursorManager::SetDisplay( |
| 72 const gfx::Display& display, | 72 const gfx::Display& display, |
| 73 views::corewm::NativeCursorManagerDelegate* delegate) { | 73 ::wm::NativeCursorManagerDelegate* delegate) { |
| 74 if (image_cursors_->SetDisplay(display)) | 74 if (image_cursors_->SetDisplay(display)) |
| 75 SetCursor(delegate->GetCursor(), delegate); | 75 SetCursor(delegate->GetCursor(), delegate); |
| 76 #if defined(OS_CHROMEOS) | 76 #if defined(OS_CHROMEOS) |
| 77 Shell::GetInstance()->display_controller()->cursor_window_controller()-> | 77 Shell::GetInstance()->display_controller()->cursor_window_controller()-> |
| 78 SetDisplay(display); | 78 SetDisplay(display); |
| 79 #endif | 79 #endif |
| 80 } | 80 } |
| 81 | 81 |
| 82 void AshNativeCursorManager::SetCursor( | 82 void AshNativeCursorManager::SetCursor( |
| 83 gfx::NativeCursor cursor, | 83 gfx::NativeCursor cursor, |
| 84 views::corewm::NativeCursorManagerDelegate* delegate) { | 84 ::wm::NativeCursorManagerDelegate* delegate) { |
| 85 gfx::NativeCursor new_cursor = cursor; | 85 gfx::NativeCursor new_cursor = cursor; |
| 86 if (native_cursor_enabled_) { | 86 if (native_cursor_enabled_) { |
| 87 image_cursors_->SetPlatformCursor(&new_cursor); | 87 image_cursors_->SetPlatformCursor(&new_cursor); |
| 88 } else { | 88 } else { |
| 89 gfx::NativeCursor invisible_cursor(ui::kCursorNone); | 89 gfx::NativeCursor invisible_cursor(ui::kCursorNone); |
| 90 image_cursors_->SetPlatformCursor(&invisible_cursor); | 90 image_cursors_->SetPlatformCursor(&invisible_cursor); |
| 91 if (new_cursor == ui::kCursorCustom) { | 91 if (new_cursor == ui::kCursorCustom) { |
| 92 new_cursor = invisible_cursor; | 92 new_cursor = invisible_cursor; |
| 93 } else { | 93 } else { |
| 94 new_cursor.SetPlatformCursor(invisible_cursor.platform()); | 94 new_cursor.SetPlatformCursor(invisible_cursor.platform()); |
| 95 } | 95 } |
| 96 } | 96 } |
| 97 new_cursor.set_device_scale_factor( | 97 new_cursor.set_device_scale_factor( |
| 98 image_cursors_->GetDisplay().device_scale_factor()); | 98 image_cursors_->GetDisplay().device_scale_factor()); |
| 99 | 99 |
| 100 delegate->CommitCursor(new_cursor); | 100 delegate->CommitCursor(new_cursor); |
| 101 | 101 |
| 102 if (delegate->IsCursorVisible()) | 102 if (delegate->IsCursorVisible()) |
| 103 SetCursorOnAllRootWindows(new_cursor); | 103 SetCursorOnAllRootWindows(new_cursor); |
| 104 } | 104 } |
| 105 | 105 |
| 106 void AshNativeCursorManager::SetCursorSet( | 106 void AshNativeCursorManager::SetCursorSet( |
| 107 ui::CursorSetType cursor_set, | 107 ui::CursorSetType cursor_set, |
| 108 views::corewm::NativeCursorManagerDelegate* delegate) { | 108 ::wm::NativeCursorManagerDelegate* delegate) { |
| 109 image_cursors_->SetCursorSet(cursor_set); | 109 image_cursors_->SetCursorSet(cursor_set); |
| 110 delegate->CommitCursorSet(cursor_set); | 110 delegate->CommitCursorSet(cursor_set); |
| 111 | 111 |
| 112 // Sets the cursor to reflect the scale change immediately. | 112 // Sets the cursor to reflect the scale change immediately. |
| 113 if (delegate->IsCursorVisible()) | 113 if (delegate->IsCursorVisible()) |
| 114 SetCursor(delegate->GetCursor(), delegate); | 114 SetCursor(delegate->GetCursor(), delegate); |
| 115 | 115 |
| 116 #if defined(OS_CHROMEOS) | 116 #if defined(OS_CHROMEOS) |
| 117 Shell::GetInstance()->display_controller()->cursor_window_controller()-> | 117 Shell::GetInstance()->display_controller()->cursor_window_controller()-> |
| 118 SetCursorSet(cursor_set); | 118 SetCursorSet(cursor_set); |
| 119 #endif | 119 #endif |
| 120 } | 120 } |
| 121 | 121 |
| 122 void AshNativeCursorManager::SetScale( | 122 void AshNativeCursorManager::SetScale( |
| 123 float scale, | 123 float scale, |
| 124 views::corewm::NativeCursorManagerDelegate* delegate) { | 124 ::wm::NativeCursorManagerDelegate* delegate) { |
| 125 image_cursors_->SetScale(scale); | 125 image_cursors_->SetScale(scale); |
| 126 delegate->CommitScale(scale); | 126 delegate->CommitScale(scale); |
| 127 | 127 |
| 128 // Sets the cursor to reflect the scale change immediately. | 128 // Sets the cursor to reflect the scale change immediately. |
| 129 SetCursor(delegate->GetCursor(), delegate); | 129 SetCursor(delegate->GetCursor(), delegate); |
| 130 } | 130 } |
| 131 | 131 |
| 132 void AshNativeCursorManager::SetVisibility( | 132 void AshNativeCursorManager::SetVisibility( |
| 133 bool visible, | 133 bool visible, |
| 134 views::corewm::NativeCursorManagerDelegate* delegate) { | 134 ::wm::NativeCursorManagerDelegate* delegate) { |
| 135 delegate->CommitVisibility(visible); | 135 delegate->CommitVisibility(visible); |
| 136 | 136 |
| 137 if (visible) { | 137 if (visible) { |
| 138 SetCursor(delegate->GetCursor(), delegate); | 138 SetCursor(delegate->GetCursor(), delegate); |
| 139 } else { | 139 } else { |
| 140 gfx::NativeCursor invisible_cursor(ui::kCursorNone); | 140 gfx::NativeCursor invisible_cursor(ui::kCursorNone); |
| 141 image_cursors_->SetPlatformCursor(&invisible_cursor); | 141 image_cursors_->SetPlatformCursor(&invisible_cursor); |
| 142 SetCursorOnAllRootWindows(invisible_cursor); | 142 SetCursorOnAllRootWindows(invisible_cursor); |
| 143 } | 143 } |
| 144 | 144 |
| 145 NotifyCursorVisibilityChange(visible); | 145 NotifyCursorVisibilityChange(visible); |
| 146 } | 146 } |
| 147 | 147 |
| 148 void AshNativeCursorManager::SetMouseEventsEnabled( | 148 void AshNativeCursorManager::SetMouseEventsEnabled( |
| 149 bool enabled, | 149 bool enabled, |
| 150 views::corewm::NativeCursorManagerDelegate* delegate) { | 150 ::wm::NativeCursorManagerDelegate* delegate) { |
| 151 delegate->CommitMouseEventsEnabled(enabled); | 151 delegate->CommitMouseEventsEnabled(enabled); |
| 152 | 152 |
| 153 if (enabled) { | 153 if (enabled) { |
| 154 aura::Env::GetInstance()->set_last_mouse_location( | 154 aura::Env::GetInstance()->set_last_mouse_location( |
| 155 disabled_cursor_location_); | 155 disabled_cursor_location_); |
| 156 } else { | 156 } else { |
| 157 disabled_cursor_location_ = aura::Env::GetInstance()->last_mouse_location(); | 157 disabled_cursor_location_ = aura::Env::GetInstance()->last_mouse_location(); |
| 158 } | 158 } |
| 159 | 159 |
| 160 SetVisibility(delegate->IsCursorVisible(), delegate); | 160 SetVisibility(delegate->IsCursorVisible(), delegate); |
| 161 NotifyMouseEventsEnableStateChange(enabled); | 161 NotifyMouseEventsEnableStateChange(enabled); |
| 162 } | 162 } |
| 163 | 163 |
| 164 } // namespace ash | 164 } // namespace ash |
| OLD | NEW |