← Back to team overview

ubuntu-webapps-bugs team mailing list archive

[Bug 1552161] [NEW] Using ui::TouchEvent makes scroll / pinch gestures coarse

 

Public bug reported:

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.

** Affects: oxide
     Importance: High
     Assignee: Chris Coulson (chrisccoulson)
         Status: Triaged

** Changed in: oxide
   Importance: Undecided => High

** Changed in: oxide
       Status: New => Triaged

** Changed in: oxide
     Assignee: (unassigned) => Chris Coulson (chrisccoulson)

** Changed in: oxide
    Milestone: None => branch-1.14

-- 
You received this bug notification because you are a member of Ubuntu
WebApps bug tracking, which is subscribed to Oxide.
https://bugs.launchpad.net/bugs/1552161

Title:
  Using ui::TouchEvent makes scroll / pinch gestures coarse

Status in Oxide:
  Triaged

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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/oxide/+bug/1552161/+subscriptions


Follow ups