Using ui::TouchEvent makes scroll / pinch gestures coarse
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Oxide |
Fix Released
|
High
|
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.
Related branches
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 |