https://bugs.kde.org/show_bug.cgi?id=473358

            Bug ID: 473358
           Summary: Bad repaint region for window caption leaves artifacts
                    when text changes in tabletMode
    Classification: Plasma
           Product: Breeze
           Version: master
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: window decoration
          Assignee: plasma-b...@kde.org
          Reporter: m...@ratijas.tk
                CC: kwin-bugs-n...@kde.org, uhh...@gmail.com
  Target Milestone: ---

Created attachment 160944
  --> https://bugs.kde.org/attachment.cgi?id=160944&action=edit
glitches

SUMMARY

With Tablet Mode (configurable in Workspace Behavior -> General Behavior ->
Touch Mode) window decorations of Breeze become almost twice as large. However,
when window caption text changes, it might leave a trail of artifacts due to
bad repaint region not extending enough to the bottom.

STEPS TO REPRODUCE
1. Enable Touch Mode
2. Switch web browser tabs, or force change window caption text to change
without resizing the window.
3. Resize the window.

OBSERVED RESULT
After step 2 you might get glitches artifacts as shown on the picture. After
step 3 it should fully repaint and become normal.

EXPECTED RESULT
Text should repaint its full height.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 5.27.7
KDE Frameworks Version: 5.109.0
Qt Version: 5.15.10
Kernel Version: 6.4.10-arch1-1 (64-bit)
Graphics Platform: X11
Processors: 8 × Intel® Core™ i7-6700HQ CPU @ 2.60GHz
Memory: 15.6 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 970M/PCIe/SSE2

ADDITIONAL INFORMATION

I use default AlignCenterFullWidth title alignment mode.

I *suspect* the offending code is in function Decoration::captionRect() or in
Decoration::paintTitleBar which is the only client of captionRect. It could as
well be Decoration::captionHeight() because it does not seem to be accounting
for neither touch mode or font size.

It could also be a rounding error when converting QRectF::toRect()

>             QRect 
> boundingRect(settings()->fontMetrics().boundingRect(c->caption()).toRect());

unlikely, however, because fontMetrics' height is disregarded in favor of
captionHeight()

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to