Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-78963

Misbehavior of clipping done for ::paintEvent with hi-dpi fractional scaling

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.13.1
    • Fix Version/s: None
    • Component/s: GUI: Painting
    • Labels:
      None
    • Platform/s:
      Linux/X11
    • Commits:
      19f29802bf7daafacd0fd824c2a1349e80eac536 (qt/qtbase/5.15)

      Description

      Given some fractional scaling, the clipping that is done internally for the paintEvent to the passed QRegion/QRect seems to not handle fractional scaled cases well.

      For Hi-DPI and scalings like 1.5 I get rendering artifacts in e.g. Konsole because at the "borders" of the clipped regions pixels are missed to be drawn.

      More details see

      https://bugreports.qt.io/browse/QTBUG-66036?focusedCommentId=479439&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-479439

      and

      https://bugreports.qt.io/browse/QTBUG-66036?focusedCommentId=479440&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-479440

      I traced that back to the internal transformation to device pixels, I think here some rounding happens into the wrong direction leading to too small clipping regions.

      This is similar in the effect like https://bugreports.qt.io/browse/QTBUG-78962
      but I see no workaround for this, as this is an internal behavior.

        Attachments

        For Gerrit Dashboard: QTBUG-78963
        # Subject Branch Project Status CR V

          Activity

            People

            • Assignee:
              vgt Eirik Aavitsland
              Reporter:
              cullmann Christoph Cullmann
            • Votes:
              3 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:

                Gerrit Reviews

                There are no open Gerrit changes