Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1840)

Unified Diff: ash/magnifier/magnification_controller.cc

Issue 1119953002: Enable display rotation, magnifier in unified desktop mode (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/magnifier/magnification_controller.cc
diff --git a/ash/magnifier/magnification_controller.cc b/ash/magnifier/magnification_controller.cc
index 68386a9ed934a970f303c5901d855c3b48cc91f0..8a94d954b6f6d319244196a2c05dc7080a4ed9fd 100644
--- a/ash/magnifier/magnification_controller.cc
+++ b/ash/magnifier/magnification_controller.cc
@@ -93,6 +93,8 @@ class MagnificationControllerImpl : virtual public MagnificationController,
void HandleFocusedNodeChanged(
bool is_editable_node,
const gfx::Rect& node_bounds_in_screen) override;
+ void SwitchTargetRootWindow(aura::Window* new_root_window,
+ bool redraw_original_root_window) override;
// For test
gfx::Point GetPointOfInterestForTesting() override {
@@ -137,13 +139,6 @@ class MagnificationControllerImpl : virtual public MagnificationController,
// started.
void AfterAnimationMoveCursorTo(const gfx::Point& location);
- // Switch Magnified RootWindow to |new_root_window|. This does following:
- // - Unzoom the current root_window.
- // - Zoom the given new root_window |new_root_window|.
- // - Switch the target window from current window to |new_root_window|.
- void SwitchTargetRootWindow(aura::Window* new_root_window,
- bool redraw_original_root_window);
-
// Returns if the magnification scale is 1.0 or not (larger then 1.0).
bool IsMagnified() const;
@@ -387,6 +382,32 @@ void MagnificationControllerImpl::HandleFocusedNodeChanged(
MoveMagnifierWindowFollowRect(node_bounds_in_root);
}
+void MagnificationControllerImpl::SwitchTargetRootWindow(
+ aura::Window* new_root_window,
+ bool redraw_original_root_window) {
+ DCHECK(new_root_window);
+
+ if (new_root_window == root_window_)
+ return;
+ // Update the |root_window_| now because RedrawKeepingMousePosition
+ // may call this back.
+ aura::Window* old_root_window = root_window_;
+ root_window_ = new_root_window;
+
+ move_cursor_after_animation_ = false;
+
+ // Stores the previous scale.
+ float scale = GetScale();
+
+ // Unmagnify the previous root window.
+ old_root_window->RemoveObserver(this);
+ if (redraw_original_root_window)
+ RedrawKeepingMousePosition(1.0f, true);
+
+ RedrawKeepingMousePosition(scale, true);
+ root_window_->AddObserver(this);
+}
+
void MagnificationControllerImpl::AfterAnimationMoveCursorTo(
const gfx::Point& location) {
DCHECK(root_window_);
@@ -478,27 +499,6 @@ void MagnificationControllerImpl::OnWindowBoundsChanged(
// TODO(yoshiki): implement here. crbug.com/230979
}
-void MagnificationControllerImpl::SwitchTargetRootWindow(
- aura::Window* new_root_window,
- bool redraw_original_root_window) {
- DCHECK(new_root_window);
-
- if (new_root_window == root_window_)
- return;
-
- // Stores the previous scale.
- float scale = GetScale();
-
- // Unmagnify the previous root window.
- root_window_->RemoveObserver(this);
- if (redraw_original_root_window)
- RedrawKeepingMousePosition(1.0f, true);
-
- root_window_ = new_root_window;
- RedrawKeepingMousePosition(scale, true);
- root_window_->AddObserver(this);
-}
-
////////////////////////////////////////////////////////////////////////////////
// MagnificationControllerImpl: MagnificationController implementation

Powered by Google App Engine
This is Rietveld 408576698