Skip to content
Snippets Groups Projects
Verified Commit 40254b06 authored by Anna Wilcox's avatar Anna Wilcox :fox:
Browse files

user/konsole: fix cursor rendering bug

parent 8995a81c
No related branches found
No related tags found
No related merge requests found
......@@ -16,7 +16,9 @@ makedepends="cmake extra-cmake-modules qt5-qtbase-dev kbookmarks-dev
kpty-dev kservice-dev ktextwidgets-dev kwidgetsaddons-dev python3
kwindowsystem-dev kxmlgui-dev kdbusaddons-dev knewstuff-dev"
subpackages="$pkgname-doc $pkgname-lang"
source="https://download.kde.org/stable/applications/$pkgver/src/konsole-$pkgver.tar.xz"
source="https://download.kde.org/stable/applications/$pkgver/src/konsole-$pkgver.tar.xz
cursor.patch
"
build() {
cd "$builddir"
......@@ -44,4 +46,5 @@ package() {
make DESTDIR="$pkgdir" install
}
sha512sums="9fecd316a9bc7adaca9a3fac38a57d293286b6328e88d96ac1cf8967fcb67ef8e9a5b085e185c4373599eafd0eaa18f0d73df70df16b98a1badd9efb689e1f7c konsole-18.12.3.tar.xz"
sha512sums="9fecd316a9bc7adaca9a3fac38a57d293286b6328e88d96ac1cf8967fcb67ef8e9a5b085e185c4373599eafd0eaa18f0d73df70df16b98a1badd9efb689e1f7c konsole-18.12.3.tar.xz
66dcb31dd63f7a300b64058e8f9e56aa122c407d3a4a85c2323e7abf2e8eb4a3e1dd83de9445dac4938f9395b612eac5ceb9626bf895b532cfd19f63e0fbb2d7 cursor.patch"
From 9af659c73e3203e1d5ef3873fa6c0144258b9673 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
(cherry picked from commit eccfb1f62bbf67ebffee11e241bd05757b826ff1)
---
src/TerminalDisplay.cpp | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/src/TerminalDisplay.cpp b/src/TerminalDisplay.cpp
index 64c831c..7c8137d 100644
--- a/src/TerminalDisplay.cpp
+++ b/src/TerminalDisplay.cpp
@@ -958,16 +958,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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment