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

Unified Diff: ui/aura/root_window.h

Issue 12983010: Manually compute inverted matrix for screen rotation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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: ui/aura/root_window.h
diff --git a/ui/aura/root_window.h b/ui/aura/root_window.h
index f2b8647d6faf4ac3e53ff15aa33e2d2de68f981f..c229e4ce28e3b74d6a34c1f3350111dbad5af299 100644
--- a/ui/aura/root_window.h
+++ b/ui/aura/root_window.h
@@ -28,6 +28,7 @@
#include "ui/gfx/insets.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/gfx/point.h"
+#include "ui/gfx/transform.h"
class SkCanvas;
@@ -293,6 +294,13 @@ class AURA_EXPORT RootWindow : public ui::CompositorDelegate,
// window that ate mouse downs).
void ClearMouseHandlers();
+ // Sets the window's transform and inverted transform. This is necessary
+ // to reverse translate the point without computation error.
+ // TODO(oshima): Remove this once the computation error is resolved.
+ // crbug.com/222483.
+ void SetTransformPair(const gfx::Transform& transform,
+ const gfx::Transform& inverted);
+
private:
FRIEND_TEST_ALL_PREFIXES(RootWindowTest, KeepTranslatedEventInRoot);
@@ -350,7 +358,8 @@ class AURA_EXPORT RootWindow : public ui::CompositorDelegate,
// transform and insets.
void UpdateWindowSize(const gfx::Size& host_size);
- void SetTransformInternal(const gfx::Transform& transform);
+ void SetTransformInternal(const gfx::Transform& transform,
+ const gfx::Transform& insert);
// Overridden from ui::EventDispatcherDelegate.
virtual bool CanDispatchToTarget(EventTarget* target) OVERRIDE;
@@ -406,6 +415,7 @@ class AURA_EXPORT RootWindow : public ui::CompositorDelegate,
void SynthesizeMouseMoveEvent();
gfx::Transform GetRootTransform() const;
+ gfx::Transform GetInvertedRootTransform() const;
scoped_ptr<ui::Compositor> compositor_;
@@ -462,6 +472,9 @@ class AURA_EXPORT RootWindow : public ui::CompositorDelegate,
// factor, which specfies the pixel density of the display.
float root_window_scale_;
+ // The invert of |layer()|'s transform.
+ gfx::Transform invert_transform_;
+
DISALLOW_COPY_AND_ASSIGN(RootWindow);
};

Powered by Google App Engine
This is Rietveld 408576698