Bug 462421 - Pixel (0, 0) is rendered black when window is inactive
Summary: Pixel (0, 0) is rendered black when window is inactive
Status: RESOLVED FIXED
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: master
Platform: Other Linux
: NOR minor
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords:
: 463187 463211 463293 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-11-30 02:38 UTC by Christoph Feck
Modified: 2024-03-23 23:38 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: v22.12.1
Sentry Crash Report:


Attachments
Screenshot (2.00 KB, image/webp)
2022-11-30 02:38 UTC, Christoph Feck
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Feck 2022-11-30 02:38:25 UTC
Created attachment 154158 [details]
Screenshot

STEPS TO REPRODUCE
1. deactivate konsole window
2. observe that a pixel at (0, 0) is rendered
3. re-activate konsole window
4. observe that the pixel disappears

ADDITIONAL INFORMATION
The same happens with Dolphin's embedded terminal.
Comment 1 Bug Janitor Service 2022-12-01 00:10:33 UTC
A possibly relevant merge request was started @ https://invent.kde.org/utilities/konsole/-/merge_requests/776
Comment 2 Matan Ziv-Av 2022-12-03 12:45:17 UTC
Git commit 088b7b55d8d362c47b8fc5d9a2abde0aa1642e2c by Matan Ziv-Av, on behalf of Luis Javier Merino Morán.
Committed on 03/12/2022 at 10:49.
Pushed by matan into branch 'master'.

Fix black pixel at (0,0)

Commit aa045d6ab changed where drawCursor was called from, and changed
the previously existing drawCursor call to operate on QRect(0, 0, 0, 0)
so the following calls to draw text still used the right colors, which
may have been altered by drawCursor.

(If a block cursor is being used, and we have focus, so the whole block
is drawn (when unfocused, an outlined block is drawn), the cursor color
may conflict with the text color.  The cursor is drawn with either the
foreground color or a custom color, and text under the cursor (actually
on the text run which starts under the cursor, when "Appearance→Complex
Text Layout→Use the same attributes for whole word" is enabled) is drawn
with either the background color or another custom color.)

So, move the part of drawCursor that changes the color to use for text
under the cursor into its own method, so we don't needlessly draw a
dummy cursor at (0,0).

M  +15   -7    src/terminalDisplay/TerminalPainter.cpp
M  +1    -0    src/terminalDisplay/TerminalPainter.h

https://invent.kde.org/utilities/konsole/commit/088b7b55d8d362c47b8fc5d9a2abde0aa1642e2c
Comment 3 Matan Ziv-Av 2022-12-18 21:39:04 UTC
*** Bug 463187 has been marked as a duplicate of this bug. ***
Comment 4 Matan Ziv-Av 2022-12-19 13:55:30 UTC
*** Bug 463211 has been marked as a duplicate of this bug. ***
Comment 5 arntzn 2022-12-27 15:40:46 UTC
may I ask when this fix will be available?  

Thanks.
Comment 6 Kurt Hindenburg 2022-12-30 18:04:01 UTC
Git commit e73068d117d9bba76d6b45e96f85c4113e79bc6a by Kurt Hindenburg, on behalf of Luis Javier Merino Morán.
Committed on 30/12/2022 at 16:49.
Pushed by hindenburg into branch 'release/22.12'.

Fix black pixel at (0,0)

Commit aa045d6ab changed where drawCursor was called from, and changed
the previously existing drawCursor call to operate on QRect(0, 0, 0, 0)
so the following calls to draw text still used the right colors, which
may have been altered by drawCursor.

(If a block cursor is being used, and we have focus, so the whole block
is drawn (when unfocused, an outlined block is drawn), the cursor color
may conflict with the text color.  The cursor is drawn with either the
foreground color or a custom color, and text under the cursor (actually
on the text run which starts under the cursor, when "Appearance→Complex
Text Layout→Use the same attributes for whole word" is enabled) is drawn
with either the background color or another custom color.)

So, move the part of drawCursor that changes the color to use for text
under the cursor into its own method, so we don't needlessly draw a
dummy cursor at (0,0).

M  +15   -7    src/terminalDisplay/TerminalPainter.cpp
M  +1    -0    src/terminalDisplay/TerminalPainter.h

https://invent.kde.org/utilities/konsole/commit/e73068d117d9bba76d6b45e96f85c4113e79bc6a
Comment 7 ninjalj 2024-03-23 23:38:36 UTC
*** Bug 463293 has been marked as a duplicate of this bug. ***