render: optionally enable heuristics that deal with private usage area chars

Try to detect double-width *glyphs* for single-width *characters*, and
allow them to overflow into the next cell.

This is only done for single-width chars with a glyph width that is at
least 1.5 cells wide, but at most 3 cells.

The feature is gated by the new
‘tweak.allow-overflowing-double-width-glyphs’, and is disabled by
default.

Closes #116
This commit is contained in:
Daniel Eklöf 2020-09-03 17:37:44 +02:00
parent bb8d9378c9
commit b71016c25d
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
5 changed files with 52 additions and 1 deletions

View file

@ -440,6 +440,23 @@ foot.
When reporting bugs, please mention if, and to what, you have changed
any of these options.
*allow-overflowing-double-width-glyphs*
When enabled, double width glyphs with a character width of 1 are
allowed to overflow into the neighbouring cell.
One use case for this is fonts "icon" characters in the Unicode
private usage area, e.g. Nerd Fonts, or Powerline Fonts. Without
this option, such glyphs will appear "cut off".
Another use case are legacy emoji characters like *WHITE FROWNING
FACE*.
Note: this feature uses _heuristics_ to determine *which* glyphs
should be allowed to overflow.
Default: _false_.
*render-timer*
Enables a frame rendering timer, that prints the time it takes to
render each frame, in microseconds, either on-screen, to stderr,