summaryrefslogtreecommitdiffstats
path: root/ash/display/display_manager_unittest.cc
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-09 04:47:59 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-09 04:47:59 +0000
commit89230998f99aa47bb472c7b2a8db0fdace37614c (patch)
treee03fe116d6e6b2df8e790847b2ee67323ae257ab /ash/display/display_manager_unittest.cc
parentfb1b37b32923f2701888e7b5f59a75756873ad6b (diff)
downloadchromium_src-89230998f99aa47bb472c7b2a8db0fdace37614c.zip
chromium_src-89230998f99aa47bb472c7b2a8db0fdace37614c.tar.gz
chromium_src-89230998f99aa47bb472c7b2a8db0fdace37614c.tar.bz2
Don't move cursor location when rotation /ui scaling has changed
Moved EnsurePointerInDisplays to DisplayController as it needs to access RootWindow. BUG=226300 TEST=covered by test. Review URL: https://chromiumcodereview.appspot.com/13466022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193008 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/display/display_manager_unittest.cc')
-rw-r--r--ash/display/display_manager_unittest.cc43
1 files changed, 43 insertions, 0 deletions
diff --git a/ash/display/display_manager_unittest.cc b/ash/display/display_manager_unittest.cc
index 237a89b..7ddb8a5 100644
--- a/ash/display/display_manager_unittest.cc
+++ b/ash/display/display_manager_unittest.cc
@@ -748,5 +748,48 @@ TEST_F(DisplayManagerTest, UIScale) {
EXPECT_EQ(0.5f, GetDisplayInfoAt(0).ui_scale());
}
+
+#if defined(OS_WIN)
+// TODO(oshima): On Windows, we don't update the origin/size right away.
+#define MAYBE_UpdateMouseCursorAfterRotateZoom DISABLED_UpdateMouseCursorAfterRotateZoom
+#else
+#define MAYBE_UpdateMouseCursorAfterRotateZoom UpdateMouseCursorAfterRotateZoom
+#endif
+
+TEST_F(DisplayManagerTest, MAYBE_UpdateMouseCursorAfterRotateZoom) {
+ // Make sure just rotating will not change native location.
+ UpdateDisplay("300x200,200x150");
+ Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
+ aura::Env* env = aura::Env::GetInstance();
+
+ // Test on 1st display.
+ root_windows[0]->MoveCursorTo(gfx::Point(150, 50));
+ EXPECT_EQ("150,50", env->last_mouse_location().ToString());
+ UpdateDisplay("300x200/r,200x150");
+ EXPECT_EQ("50,149", env->last_mouse_location().ToString());
+
+ // Test on 2nd display.
+ root_windows[1]->MoveCursorTo(gfx::Point(50, 100));
+ EXPECT_EQ("250,100", env->last_mouse_location().ToString());
+ UpdateDisplay("300x200/r,200x150/l");
+ EXPECT_EQ("249,50", env->last_mouse_location().ToString());
+
+ // Make sure just zooming will not change native location.
+ UpdateDisplay("600x400*2,400x300");
+
+ // Test on 1st display.
+ root_windows[0]->MoveCursorTo(gfx::Point(100, 150));
+ EXPECT_EQ("100,150", env->last_mouse_location().ToString());
+ UpdateDisplay("600x400*2@1.5,400x300");
+ EXPECT_EQ("150,225", env->last_mouse_location().ToString());
+
+ // Test on 2nd display.
+ UpdateDisplay("600x400,400x300*2");
+ root_windows[1]->MoveCursorTo(gfx::Point(100, 50));
+ EXPECT_EQ("700,50", env->last_mouse_location().ToString());
+ UpdateDisplay("600x400,400x300*2@1.5");
+ EXPECT_EQ("750,75", env->last_mouse_location().ToString());
+}
+
} // namespace internal
} // namespace ash