Ubuntu QPA plugin does not override QScreen::devicePixelRatio

Bug #1275748 reported by Chris Coulson on 2014-02-03
This bug affects 5 people
Affects Status Importance Assigned to Milestone
qtubuntu (Ubuntu)
Gerry Boland
ubuntu-ui-toolkit (Ubuntu)
Zsombor Egri

Bug Description

In bug 1257721, I made Oxide DPI aware by passing an appropriate device pixel ratio to Chromium. However, the way this is implemented on Ubuntu is not really ideal. I expected to be able to read the DPR from QScreen::devicePixelRatio, but this is always 1.0f on Ubuntu regardless of the device scale. Instead, device pixel independence is implemented entirely in ubuntu-ui-toolkit by providing a QML component for converting between grid units and device pixels, based on an environment variable called "GRID_UNIT_PX".

For now, I implemented a workaround in Oxide to also set the DPR to GRID_UNIT_PX / 8 when running with the Ubuntu platform plugin, and QScreen::devicePixelRatio on all other platforms.

I think that qtubuntu should instead override QScreen::devicePixelRatio (that could still come from the same environment variable for now), and ubuntu-ui-toolkit should do the conversion from grid units to device pixels using this instead.

Related branches

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in qtubuntu (Ubuntu):
status: New → Confirmed
Changed in ubuntu-ui-toolkit (Ubuntu):
status: New → Confirmed
Pat McGowan (pat-mcgowan) wrote :

This is effecting HiDPI screens

Changed in ubuntu-ui-toolkit (Ubuntu):
importance: Undecided → High
assignee: nobody → Zsombor Egri (zsombi)
Zoltan Balogh (bzoltan) on 2014-11-17
affects: ubuntu-ui-toolkit (Ubuntu) → ubuntu-ui-toolkit
Zoltan Balogh (bzoltan) on 2014-11-24
Changed in ubuntu-ui-toolkit (Ubuntu):
assignee: nobody → Zsombor Egri (zsombi)
importance: Undecided → High
status: New → Confirmed
Zoltan Balogh (bzoltan) on 2014-11-24
no longer affects: ubuntu-ui-toolkit
Gerry Boland (gerboland) on 2015-04-14
Changed in qtubuntu:
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Gerry Boland (gerboland)
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-ui-toolkit - 1.3.1627+15.10.20150908-0ubuntu1

ubuntu-ui-toolkit (1.3.1627+15.10.20150908-0ubuntu1) wily; urgency=medium

  [ Zsombor Egri ]
  * Implement list item expansion.
  * Turn AdaptivePageLayout page creation to be asynchronous.
  * Fix ListItem swipe handling when gesture is initiated over an overlay
    MouseArea which does not accept pressed event. Fixes LP: #1484545
  * AbstractButton to C++. Fixes LP: #1365471, LP: #1458028
  * Haptics singleton moved to C++.
  * ActionItem moved to C++.
  * Making columns resizable in an AdaptivePageLayout.
  * Introducing column configuration into AdaptivePageLayout.

  [ Benjamin Zeller ]
  * Fix build inside qt and shadowbuild.

  [ Tim Peeters ]
  * Remove old and unused header-related files, and update unit test filenames.
  * Don't unset the subheader style when Page.head changes because that unsets
    the parent of Page.head.contents. Fixes LP: #1488922
  * Fix the theming of the MainView.
  * Fix the background color of the overflow panel.

  [ Christian Dywan ]
  * Include change signals with arguments in .api.
  * A public QML type with no version is an error. Rather than silently breaking
    as QML does normally at least apicheck can make this fatal.
  * UbuntuShape shouldn't emit redundant deprecation warnings. Fixes LP: #1481791
  * Update .bzrignore to new upstream style layout. Fixes LP: #1433308
  * Revert unnecessary change of Popover minimumWidth. Fixes LP: #1483708

  [ Ken VanDine ]
  * Fixed a few typos in the api docs for StateSaver.

  [ Olivier Tilloy ]
  * Take custom key indexes into account to allow sorting on custom roles.
    Fixes LP: #1485674

  [ Albert Astals Cid ]
  * Properly free shapeTextures[index] The old code assumes that the UbuntuShape
    will still be around when the opengl context is destroyed, but that seldom
    happens so connect the signal to a lambda that will be there and does the
    cleanup properly. Without this patch testDirectionalDragArea from unity8 was
    hitting the qFatal because it ran out of space in shapeTextures.

  [ Richard Huddie ]
  * Remove all usage of the autopilot simulated keyboard when the OSK is being
    used. Fixes LP: 31483668

  [ Gerry Boland ]
  * Compensate for Qt's device pixel ratio multiplier.
    Fixes: LP: #1207270, LP: #1275748, LP: #1468402

  [ Nick Dedekind ]
  * Added relative date time i18n.

  [ CI Train Bot ]
  * Resync trunk.

 -- Zoltan Balogh <email address hidden> Tue, 08 Sep 2015 04:10:50 +0000

Changed in ubuntu-ui-toolkit (Ubuntu):
status: Confirmed → Fix Released
Michał Sawicz (saviq) on 2017-03-13
Changed in qtubuntu (Ubuntu):
assignee: nobody → Gerry Boland (gerboland)
importance: Undecided → Medium
status: Confirmed → In Progress
no longer affects: qtubuntu
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers