Fix Private use Unicode area characters followed by spaces at the end of text not being rendered correctly
Fixes #1210
This commit is contained in:
parent
f77ad2b41d
commit
37ee693de2
@ -15,6 +15,9 @@ Changelog
|
|||||||
|
|
||||||
- Linux: Handle keyboards with a "+" key (:iss:`1224`)
|
- Linux: Handle keyboards with a "+" key (:iss:`1224`)
|
||||||
|
|
||||||
|
- Fix Private use Unicode area characters followed by spaces at the end of text
|
||||||
|
not being rendered correctly (:iss:`1210`)
|
||||||
|
|
||||||
0.13.1 [2018-12-06]
|
0.13.1 [2018-12-06]
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
|
|||||||
@ -1012,19 +1012,17 @@ render_line(FONTS_DATA_HANDLE fg_, Line *line) {
|
|||||||
if (is_private_use(cpu_cell->ch)
|
if (is_private_use(cpu_cell->ch)
|
||||||
&& cell_font_idx != BOX_FONT
|
&& cell_font_idx != BOX_FONT
|
||||||
&& cell_font_idx != MISSING_FONT) {
|
&& cell_font_idx != MISSING_FONT) {
|
||||||
int desired_cells;
|
int desired_cells = 1;
|
||||||
if (cell_font_idx > 0) {
|
if (cell_font_idx > 0) {
|
||||||
Font *font = (fg->fonts + cell_font_idx);
|
Font *font = (fg->fonts + cell_font_idx);
|
||||||
glyph_index glyph_id = glyph_id_for_codepoint(font->face, cpu_cell->ch);
|
glyph_index glyph_id = glyph_id_for_codepoint(font->face, cpu_cell->ch);
|
||||||
|
|
||||||
int width = get_glyph_width(font->face, glyph_id);
|
int width = get_glyph_width(font->face, glyph_id);
|
||||||
desired_cells = ceilf((float)width / fg->cell_width);
|
desired_cells = ceilf((float)width / fg->cell_width);
|
||||||
} else {
|
|
||||||
desired_cells = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int num_spaces = 0;
|
int num_spaces = 0;
|
||||||
while ((line->cpu_cells[i+num_spaces+1].ch == ' ' || line->cpu_cells[i+num_spaces+1].ch == 0)
|
while ((line->cpu_cells[i+num_spaces+1].ch == ' ')
|
||||||
&& num_spaces < MAX_NUM_EXTRA_GLYPHS_PUA
|
&& num_spaces < MAX_NUM_EXTRA_GLYPHS_PUA
|
||||||
&& num_spaces < desired_cells
|
&& num_spaces < desired_cells
|
||||||
&& i + num_spaces + 1 < line->xnum) {
|
&& i + num_spaces + 1 < line->xnum) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user