Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.1:Rings:1-MinimalX
konsole
Fix-ibeam-and-underline-cursor-rendering.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File Fix-ibeam-and-underline-cursor-rendering.patch of Package konsole
From eccfb1f62bbf67ebffee11e241bd05757b826ff1 Mon Sep 17 00:00:00 2001 From: Wolfgang Bauer <wbauer@tmo.at> Date: Mon, 4 Mar 2019 09:59:45 -0500 Subject: Fix ibeam and underline cursor rendering Summary: Since anti-aliasing was enabled in the painter, coordinates need to be shifted half a pixel so that they align with the pixel grid, otherwise the result gets "blurred" due to the anti-aliasing. And as parts of the blurred shape leak outside the cursor rectangle, this also leaves artifacts when the cursor moves or blinks as these parts are not cleared. This is basically the same as commit e7085310d6d594823d0ed491fa8bdbd99dec4932 for the standard block cursor. BUG: 402589 Test Plan: - Switch cursor shape to "I-Beam" or "Underline" in the "Advanced" profile settings The cursors are a single line again now, before they were blurred by anti-aliasing. Screenshots: Before: {F6656366} {F6656370} After: {F6656371} {F6656373} Also, there are no more artifacts when the cursor is moved or cursor blinking is enabled. Reviewers: #konsole, hindenburg Reviewed By: #konsole, hindenburg Subscribers: hindenburg, konsole-devel Tags: #konsole Differential Revision: https://phabricator.kde.org/D19513 --- src/TerminalDisplay.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/TerminalDisplay.cpp b/src/TerminalDisplay.cpp index 543b897..397422c 100644 --- a/src/TerminalDisplay.cpp +++ b/src/TerminalDisplay.cpp @@ -716,16 +716,18 @@ void TerminalDisplay::drawCursor(QPainter& painter, } } } else if (_cursorShape == Enum::UnderlineCursor) { - painter.drawLine(cursorRect.left(), - cursorRect.bottom(), - cursorRect.right(), - cursorRect.bottom()); + QLineF line(cursorRect.left() + 0.5, + cursorRect.bottom() - 0.5, + cursorRect.right() - 0.5, + cursorRect.bottom() - 0.5); + painter.drawLine(line); } else if (_cursorShape == Enum::IBeamCursor) { - painter.drawLine(cursorRect.left(), - cursorRect.top(), - cursorRect.left(), - cursorRect.bottom()); + QLineF line(cursorRect.left() + 0.5, + cursorRect.top() + 0.5, + cursorRect.left() + 0.5, + cursorRect.bottom() - 0.5); + painter.drawLine(line); } } -- cgit v1.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor