summaryrefslogtreecommitdiffstats
path: root/ui/base/events
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-28 22:22:52 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-28 22:22:52 +0000
commitdf1114bbc385a9b1b9341dcc7d1b81faf43fa838 (patch)
treea1b8892ad7481cdc37437b48622c93c88d44f919 /ui/base/events
parent983aa814985278db960d7186b1c39c3615d48870 (diff)
downloadchromium_src-df1114bbc385a9b1b9341dcc7d1b81faf43fa838.zip
chromium_src-df1114bbc385a9b1b9341dcc7d1b81faf43fa838.tar.gz
chromium_src-df1114bbc385a9b1b9341dcc7d1b81faf43fa838.tar.bz2
events: Make sure the unaccelerated scroll deltas get adjusted properly for device-scale-factor.
BUG=none Review URL: https://codereview.chromium.org/12321090/ Review URL: https://codereview.chromium.org/12391022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185346 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base/events')
-rw-r--r--ui/base/events/event.cc11
-rw-r--r--ui/base/events/event.h4
2 files changed, 15 insertions, 0 deletions
diff --git a/ui/base/events/event.cc b/ui/base/events/event.cc
index 079e5f7..ad26a24 100644
--- a/ui/base/events/event.cc
+++ b/ui/base/events/event.cc
@@ -679,6 +679,17 @@ void ScrollEvent::Scale(const float factor) {
y_offset_ordinal_ *= factor;
}
+void ScrollEvent::UpdateForRootTransform(const gfx::Transform& root_transform) {
+ LocatedEvent::UpdateForRootTransform(root_transform);
+ gfx::DecomposedTransform decomp;
+ bool success = gfx::DecomposeTransform(&decomp, root_transform);
+ DCHECK(success);
+ if (decomp.scale[0])
+ x_offset_ordinal_ /= decomp.scale[0];
+ if (decomp.scale[1])
+ y_offset_ordinal_ /= decomp.scale[1];
+}
+
////////////////////////////////////////////////////////////////////////////////
// GestureEvent
diff --git a/ui/base/events/event.h b/ui/base/events/event.h
index a50823a..95e34ce 100644
--- a/ui/base/events/event.h
+++ b/ui/base/events/event.h
@@ -655,6 +655,10 @@ class UI_EXPORT ScrollEvent : public MouseEvent {
float y_offset_ordinal() const { return y_offset_ordinal_; }
int finger_count() const { return finger_count_; }
+ // Overridden from LocatedEvent.
+ virtual void UpdateForRootTransform(
+ const gfx::Transform& root_transform) OVERRIDE;
+
private:
// Potential accelerated offsets.
float x_offset_;