Bug 483197

Summary: Konsole's cursor has artifacts when using Qt6 scaling
Product: [Applications] konsole Reporter: Quinten Kock <quinten>
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED FIXED    
Severity: normal CC: nate
Priority: NOR Keywords: qt6
Version: 24.02.0   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In: 24.05
Attachments: Uneven block cursor edges at 150%
Randomly rounded corners at 200%

Description Quinten Kock 2024-03-11 05:37:19 UTC
Created attachment 166933 [details]
Uneven block cursor edges at 150%

SUMMARY
The block cursor in my Konsole window looks offensively bad at scale factors like 150% and 200%, especially when the window is not focused.


STEPS TO REPRODUCE
1. Set the scaling factor to e.g. 150% or 200%. Other factors like 125% also seem to give weird results.
2. Open Konsole.
3. Defocus its window.

OBSERVED RESULT
The block cursor outline is deformed (at 150%, the edges are uneven).

EXPECTED RESULT
Nice, even & sharp block cursor outline

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 6.0.1
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2

ADDITIONAL INFORMATION
Graphics platform: Wayland
Display driver: NVIDIA 535.154.05 (RTX 2070)
Comment 1 Quinten Kock 2024-03-11 05:37:49 UTC
Created attachment 166934 [details]
Randomly rounded corners at 200%
Comment 2 Bug Janitor Service 2024-03-12 22:36:46 UTC
A possibly relevant merge request was started @ https://invent.kde.org/utilities/konsole/-/merge_requests/966
Comment 3 Kurt Hindenburg 2024-03-15 22:33:25 UTC
Git commit 65265067804f2cacdcdaccd9e51dc86dc1cd596b by Kurt Hindenburg, on behalf of Luis Javier Merino Morán.
Committed on 15/03/2024 at 22:18.
Pushed by hindenburg into branch 'master'.

Draw block cursor outline with MiterJoin

Prevents artifacts at the corners when using DPI scaling, e.g. the
screenshot at the bug report with 2.00 scale.

M  +1    -0    src/terminalDisplay/TerminalPainter.cpp

https://invent.kde.org/utilities/konsole/-/commit/65265067804f2cacdcdaccd9e51dc86dc1cd596b
Comment 4 Kurt Hindenburg 2024-03-15 22:33:33 UTC
Git commit a0e50704bfa00474f7bf33ee022885c74e22d815 by Kurt Hindenburg, on behalf of Luis Javier Merino Morán.
Committed on 15/03/2024 at 22:18.
Pushed by hindenburg into branch 'master'.

Draw block cursor with antialiasing

Prevents further artifacts when DPI scaling, e.g. at 1.25x scale some of
the lines of a hollow cursor may be 1 pixel wide, while others may be 2
pixels wide.

M  +2    -0    src/terminalDisplay/TerminalPainter.cpp

https://invent.kde.org/utilities/konsole/-/commit/a0e50704bfa00474f7bf33ee022885c74e22d815