Bug 425973 - bpytop font rendering problem in all fonts except Terminus
Summary: bpytop font rendering problem in all fonts except Terminus
Status: RESOLVED FIXED
Alias: None
Product: konsole
Classification: Applications
Component: font (show other bugs)
Version: 19.12.3
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-08-30 10:18 UTC by Dominik Riva
Modified: 2022-08-27 01:10 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dominik Riva 2020-08-30 10:18:13 UTC
SUMMARY


STEPS TO REPRODUCE
1. install bpytop
2. wait a few seconds for the rendering to get worse
3. 

OBSERVED RESULT

The graphs composed of brile chars miss align and even go behind other chars


EXPECTED RESULT

Graphs stay vertically aligned and don't wander to the right behind other chars.


SOFTWARE/OS VERSIONS

Operating System: Kubuntu 20.04
KDE Plasma Version: 5.18.5
KDE Frameworks Version: 5.68.0
Qt Version: 5.12.8

ADDITIONAL INFORMATION

https://github.com/aristocratos/bpytop/issues/91
https://github.com/aristocratos/bpytop/issues/94
Comment 1 Stéphane Gleizes 2020-09-17 08:33:05 UTC
I've also hit this issue and it seems to be related to the fallback font, possibly that the used terminal font and the fallback font for the braille characters gets rendered differently by konsole for some unknown reason.

In my case I am using `MesloGLS NF` as terminal font and the font used for braille is `DejaVu Sans`, but I've tried using many other fallback fonts, always getting the same results.

It seems that konsole might not be using the same character/font size for the two different fonts.

See https://github.com/aristocratos/bpytop/issues/100.
Comment 2 Stéphane Gleizes 2020-10-11 16:53:19 UTC
It seems that turning off 'Bi-Directional text rendering' in the 'Advanced' tab of Konsole profile settings solves the rendering/alignment issue.
Comment 3 ninjalj 2022-01-04 00:05:55 UTC
Fixed in git. Not yet in a released version.
Comment 4 Bug Janitor Service 2022-08-06 18:51:45 UTC
A possibly relevant merge request was started @ https://invent.kde.org/utilities/konsole/-/merge_requests/722
Comment 5 Kurt Hindenburg 2022-08-27 01:10:32 UTC
Git commit 76f879cd70fb494ab2334d2660b34679546f3d9d by Kurt Hindenburg, on behalf of Matan Ziv-Av.
Committed on 26/08/2022 at 19:24.
Pushed by hindenburg into branch 'master'.

Draw characters in exact positions

QT can't be made to draw monospaced text (if the font does not cooperate),
so avoid combining characters, using a QPainter::drawText() call for each
character.

For bidi text support this change requires konsole to reorder and reshape
the characters. This is done using the ICU library (which QT also uses).

This change allows for some improvements related to text rendering:

- More precise bidi reordering, which is no longer changed by characters'
  attributes and selection.
- underlines drawn separately from the text, allowing for differing
  underline modes (double, curly, dashed, dotted, colored).
- Overriding font for emoji characters.

This commit fixes a few bugs and addresses a lot more:

Feature requests: More standard conforming RTL and various underlines:
Related: bug 403729, bug 387811, bug 416508, bug 452087, bug 430822, bug 442742, bug 441037, bug 430822, bug 440070, bug 450017, bug 445846, bug 453086, bug 381593, bug 451716

Using non-monospace font:



Emoji:

Regression: devanagari rendering

M  +2    -0    CMakeLists.txt
M  +1    -0    src/CMakeLists.txt
M  +47   -25   src/FontDialog.cpp
M  +2    -1    src/FontDialog.h
M  +127  -23   src/Screen.cpp
M  +18   -5    src/Screen.h
M  +28   -13   src/Vt102Emulation.cpp
M  +0    -29   src/autotests/CharacterTest.cpp
M  +0    -1    src/autotests/CharacterTest.h
M  +1    -1    src/autotests/TerminalCharacterDecoderTest.cpp
M  +119  -29   src/characters/Character.h
M  +1    -1    src/characters/Hangul.cpp
M  +5    -4    src/decoders/HTMLDecoder.cpp
M  +1    -1    src/decoders/PlainTextDecoder.cpp
M  +3    -0    src/profile/Profile.cpp
M  +29   -0    src/profile/Profile.h
M  +101  -6    src/terminalDisplay/TerminalDisplay.cpp
M  +7    -0    src/terminalDisplay/TerminalDisplay.h
M  +42   -0    src/terminalDisplay/TerminalFonts.cpp
M  +12   -0    src/terminalDisplay/TerminalFonts.h
M  +542  -269  src/terminalDisplay/TerminalPainter.cpp
M  +40   -13   src/terminalDisplay/TerminalPainter.h
M  +2    -0    src/widgets/EditProfileAdvancedPage.ui
M  +113  -3    src/widgets/EditProfileAppearancePage.ui
M  +61   -3    src/widgets/EditProfileDialog.cpp
M  +6    -1    src/widgets/EditProfileDialog.h

https://invent.kde.org/utilities/konsole/commit/76f879cd70fb494ab2334d2660b34679546f3d9d