Index: ash/magnifier/magnification_controller.cc |
diff --git a/ash/magnifier/magnification_controller.cc b/ash/magnifier/magnification_controller.cc |
index ba1de9ea68cacd83ae3e818984e1502404a54538..a4c5d1c22a37871dda9be88d52794af5cd17bb38 100644 |
--- a/ash/magnifier/magnification_controller.cc |
+++ b/ash/magnifier/magnification_controller.cc |
@@ -8,6 +8,7 @@ |
#include "ash/shell.h" |
#include "ash/shell_delegate.h" |
#include "ash/system/tray/system_tray_delegate.h" |
+#include "base/synchronization/waitable_event.h" |
#include "ui/aura/client/cursor_client.h" |
#include "ui/aura/root_window.h" |
#include "ui/aura/window.h" |
@@ -18,6 +19,7 @@ |
#include "ui/compositor/layer.h" |
#include "ui/compositor/layer_animation_observer.h" |
#include "ui/compositor/scoped_layer_animation_settings.h" |
+#include "ui/gfx/point3_f.h" |
#include "ui/gfx/point_conversions.h" |
#include "ui/gfx/point_f.h" |
#include "ui/gfx/rect_conversions.h" |
@@ -38,6 +40,14 @@ const float kScrollScaleChangeFactor = 0.05f; |
// |kPanningMergin| from the edge, the view-port moves. |
const int kPanningMergin = 100; |
+void MoveCursorTo(aura::RootWindow* root_window, |
+ const gfx::Point root_location) { |
+ gfx::Point3F host_location_3f(root_location); |
+ root_window->layer()->transform().TransformPoint(host_location_3f); |
+ root_window->MoveCursorToHostLoation( |
+ gfx::ToCeiledPoint(host_location_3f.AsPointF())); |
+} |
+ |
} // namespace |
namespace ash { |
@@ -67,6 +77,10 @@ class MagnificationControllerImpl : virtual public MagnificationController, |
bool animate) OVERRIDE; |
virtual void EnsurePointIsVisible(const gfx::Point& point, |
bool animate) OVERRIDE; |
+ // For test |
+ virtual gfx::Point GetPointOfInterestForTesting() OVERRIDE { |
+ return point_of_interest_; |
+ } |
private: |
// ui::ImplicitAnimationObserver overrides: |
@@ -358,7 +372,7 @@ void MagnificationControllerImpl::OnMouseMove(const gfx::Point& location) { |
if (ret) { |
// If the magnified region is moved, hides the mouse cursor and moves it. |
if (x_diff != 0 || y_diff != 0) |
- root_window_->MoveCursorTo(mouse); |
+ MoveCursorTo(root_window_, mouse); |
} |
} |
} |
@@ -418,7 +432,7 @@ void MagnificationControllerImpl::OnImplicitAnimationsCompleted() { |
return; |
if (move_cursor_after_animation_) { |
- root_window_->MoveCursorTo(position_after_animation_); |
+ MoveCursorTo(root_window_, position_after_animation_); |
move_cursor_after_animation_ = false; |
aura::client::CursorClient* cursor_client = |