Public bug reported:

Oxide assumes that the coordinate space for QtQuick is always physical
pixels, and that device scaling is always performed by the application /
toolkit. This is only true for Ubuntu UI apps running on the Ubuntu QPA
plugin though.

Other QPA plugins take care of scaling already if it's not handled by
the windowing system (eg, xcb). In Qt 5.6, the API boundary between QPA
plugins and Qt works in native pixels (which are in the coordinate space
that the windowing system works with - in X11 this is physical pixels,
in OS X this is scaled already), and Qt takes care of mapping between
native pixels and device independent pixels rather than this being done
in the QPA plugins.

Today Oxide is completely broken on xcb with a device scale other than
1. If you launch the browser with QT_DEVICE_PIXEL_RATIO=2 (and without
GRID_UNIT_PX set), then the application UI appears to scale correctly
because of the scaling in the xcb QPA plugin. However, the webview
content is scaled twice (eg, on my 1600 pixel wide display, the webview
gets a width of 400 device independent pixels) because we wrongly assume
that QtQuick is operating in physical pixels.

We can fix this in Oxide by assuming that QtQuick operates in device
independent pixels (as it does on most platforms), but we need to add in
an Ubuntu-specific quirk because it does all of its scaling in the UI
toolkit.

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

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

** 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/1548996

Title:
  Fix device scaling mess

Status in Oxide:
  Triaged

Bug description:
  Oxide assumes that the coordinate space for QtQuick is always physical
  pixels, and that device scaling is always performed by the application
  / toolkit. This is only true for Ubuntu UI apps running on the Ubuntu
  QPA plugin though.

  Other QPA plugins take care of scaling already if it's not handled by
  the windowing system (eg, xcb). In Qt 5.6, the API boundary between
  QPA plugins and Qt works in native pixels (which are in the coordinate
  space that the windowing system works with - in X11 this is physical
  pixels, in OS X this is scaled already), and Qt takes care of mapping
  between native pixels and device independent pixels rather than this
  being done in the QPA plugins.

  Today Oxide is completely broken on xcb with a device scale other than
  1. If you launch the browser with QT_DEVICE_PIXEL_RATIO=2 (and without
  GRID_UNIT_PX set), then the application UI appears to scale correctly
  because of the scaling in the xcb QPA plugin. However, the webview
  content is scaled twice (eg, on my 1600 pixel wide display, the
  webview gets a width of 400 device independent pixels) because we
  wrongly assume that QtQuick is operating in physical pixels.

  We can fix this in Oxide by assuming that QtQuick operates in device
  independent pixels (as it does on most platforms), but we need to add
  in an Ubuntu-specific quirk because it does all of its scaling in the
  UI toolkit.

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

-- 
Mailing list: https://launchpad.net/~ubuntu-webapps-bugs
Post to     : ubuntu-webapps-bugs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~ubuntu-webapps-bugs
More help   : https://help.launchpad.net/ListHelp

Reply via email to