Using ui::TouchEvent makes scroll / pinch gestures coarse

Bug #1552161 reported by Chris Coulson
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Chris Coulson

Bug Description

The lifetime of a touch event in Oxide before we pass it to Chromium is:

QTouchEvent -> ui::TouchEvent -> ui::MotionEvent.

Touch co-ordinates are in device independent pixels, and Qt provides these as floats. The constructor for ui::TouchEvent requires us to round the co-ordinates to the nearest integer because it takes a gfx::Point.

This causes a problem - it means that the smallest touch point movement is 1 device-independent pixel, which could be 2 or 3 physical pixels depending on the device scale. This makes scrolling and pinch-zooming appear coarse compared to Chrome/Android (where it's possible to scroll by single physical pixels).

As ui::MotionEvent works with floats, I suggest we just cut out the middleman here and stop using ui::TouchEvent entirely.

Changed in oxide:
importance: Undecided → High
status: New → Triaged
assignee: nobody → Chris Coulson (chrisccoulson)
milestone: none → branch-1.14
Changed in oxide:
status: Triaged → In Progress
Changed in oxide:
milestone: branch-1.14 → branch-1.15
Changed in oxide:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers