[Konsole-devel] [konsole] [Bug 297390] When wide characters appear on a line, Konsole cuts off half a letter

Eevee eevee.kdebugs at veekun.com
Sat Feb 14 22:02:35 UTC 2015


https://bugs.kde.org/show_bug.cgi?id=297390

Eevee <eevee.kdebugs at veekun.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |eevee.kdebugs at veekun.com

--- Comment #14 from Eevee <eevee.kdebugs at veekun.com> ---
I'm /reasonably/ sure this has nothing to do with Unicode character width, and
everything to do with fonts.  (Note that the character in the original
screenshot doesn't take up two cells; it takes about one and a half.)

I think the problem is that Konsole is rendering each row as a regular line of
text.

The original reporter's terminal font apparently doesn't have an airplane
glyph.  So the font engine searches for a font that does, and finds one,
whatever it may be.  But this new font probably isn't monospace, so the glyph
isn't the same width as the rest of the characters in the terminal.  Konsole
blindly prints it anyway and places the next character immediately following
it, even though this is now completely misaligned from the grid.

The cursor is apparently rendered separately (makes sense, since it's not a
character), so it gets drawn in the appropriate grid cell.

What Konsole /should/ be doing is either shrinking the substituted character to
fit in a cell, or forcibly rendering every single character at its correct
position (even if this makes some overlap).

This has been a bug for as long as I've used KDE.  It makes using non-ASCII
characters for any reason basically impossible — my prompt, irssi, vim,
roguelikes, anything that uses interesting characters causes the cursor and
columns to become misaligned.  I've had to switch to a libvte-based terminal,
which correctly handles this by overlapping characters when necessary.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the konsole-devel mailing list