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