Index: ash/wm/ash_native_cursor_manager.cc |
diff --git a/ash/wm/ash_native_cursor_manager.cc b/ash/wm/ash_native_cursor_manager.cc |
index e78eb94db29f6d1ca950131e205bb7b10f10b04b..7c7a00ea13f26f45e888c6a6cf9f0d887a24d701 100644 |
--- a/ash/wm/ash_native_cursor_manager.cc |
+++ b/ash/wm/ash_native_cursor_manager.cc |
@@ -7,12 +7,12 @@ |
#include "ash/display/cursor_window_controller.h" |
#include "ash/display/display_controller.h" |
#include "ash/shell.h" |
-#include "ash/wm/image_cursors.h" |
#include "base/logging.h" |
#include "ui/aura/env.h" |
#include "ui/aura/window_event_dispatcher.h" |
#include "ui/aura/window_tree_host.h" |
#include "ui/base/cursor/cursor.h" |
+#include "ui/base/cursor/image_cursors.h" |
namespace ash { |
namespace { |
@@ -54,7 +54,7 @@ void NotifyMouseEventsEnableStateChange(bool enabled) { |
AshNativeCursorManager::AshNativeCursorManager() |
: native_cursor_enabled_(true), |
- image_cursors_(new ImageCursors) { |
+ image_cursors_(new ui::ImageCursors) { |
} |
AshNativeCursorManager::~AshNativeCursorManager() { |
@@ -72,7 +72,12 @@ void AshNativeCursorManager::SetNativeCursorEnabled(bool enabled) { |
void AshNativeCursorManager::SetDisplay( |
const gfx::Display& display, |
::wm::NativeCursorManagerDelegate* delegate) { |
- if (image_cursors_->SetDisplay(display)) |
+ DCHECK(display.is_valid()); |
+ // Use the platform's device scale factor instead of the display's, which |
+ // might have been adjusted for the UI scale. |
+ const float scale_factor = Shell::GetInstance()->display_manager()-> |
+ GetDisplayInfo(display.id()).device_scale_factor(); |
+ if (image_cursors_->SetDisplay(display, scale_factor)) |
SetCursor(delegate->GetCursor(), delegate); |
#if defined(OS_CHROMEOS) |
Shell::GetInstance()->display_controller()->cursor_window_controller()-> |