summaryrefslogtreecommitdiffstats
path: root/kde/patch/konsole/konsole.cursor.antialias.patch
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2019-05-09 16:07:11 +0200
committer Eric Hameleers <alien@slackware.com>2019-05-09 16:07:11 +0200
commit50755f0d37e7bd64c1939424e129058f86aa0605 (patch)
tree65271eddc7940d99dddc2c85d88d79dae0a4667a /kde/patch/konsole/konsole.cursor.antialias.patch
parenta16c3d7cd80d1be0a8efaaea034e85932db14ef5 (diff)
downloadktown-50755f0d37e7bd64c1939424e129058f86aa0605.tar.gz
ktown-50755f0d37e7bd64c1939424e129058f86aa0605.tar.xz
Konsole: fix rendering of cursor if non-default theme is selected
This issue was fixed post 18.12.3, so the patch is added but not applied since we now compile konsole-19.04.1.
Diffstat (limited to 'kde/patch/konsole/konsole.cursor.antialias.patch')
-rw-r--r--kde/patch/konsole/konsole.cursor.antialias.patch83
1 files changed, 83 insertions, 0 deletions
diff --git a/kde/patch/konsole/konsole.cursor.antialias.patch b/kde/patch/konsole/konsole.cursor.antialias.patch
new file mode 100644
index 0000000..596ccaa
--- /dev/null
+++ b/kde/patch/konsole/konsole.cursor.antialias.patch
@@ -0,0 +1,83 @@
+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: [PATCH] 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 543b8970..397422c4 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);
+ }
+ }
+
+