mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
Fix: with newer GTK versions accented characters were drawn too much to the
left.
This commit is contained in:
@@ -45,9 +45,6 @@ Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
|
|||||||
|
|
||||||
Should readfile() ignore BOM when not in binary mode?
|
Should readfile() ignore BOM when not in binary mode?
|
||||||
|
|
||||||
GTK: accented characters are drawn one character too much to the left. (Boyko
|
|
||||||
Bantchev, 2010 Aug 5)
|
|
||||||
|
|
||||||
Bug: searching for tags file uses 'suffixesadd', should not happen. (Dominique
|
Bug: searching for tags file uses 'suffixesadd', should not happen. (Dominique
|
||||||
Pelle, 2010 June 28)
|
Pelle, 2010 June 28)
|
||||||
|
|
||||||
|
@@ -4809,6 +4809,10 @@ setup_zero_width_cluster(PangoItem *item, PangoGlyphInfo *glyph,
|
|||||||
glyph->geometry.y_offset = logical_rect.height
|
glyph->geometry.y_offset = logical_rect.height
|
||||||
- (gui.char_height - p_linespace) * PANGO_SCALE;
|
- (gui.char_height - p_linespace) * PANGO_SCALE;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
/* If the accent width is smaller than the cluster width, position it
|
||||||
|
* in the middle. */
|
||||||
|
glyph->geometry.x_offset = -width + MAX(0, width - ink_rect.width) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -4989,9 +4993,6 @@ not_ascii:
|
|||||||
int cluster_width;
|
int cluster_width;
|
||||||
int last_glyph_rbearing;
|
int last_glyph_rbearing;
|
||||||
int cells = 0; /* cells occupied by current cluster */
|
int cells = 0; /* cells occupied by current cluster */
|
||||||
#if 0
|
|
||||||
int monospace13 = STRICMP(p_guifont, "monospace 13") == 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Safety check: pango crashes when invoked with invalid utf-8
|
/* Safety check: pango crashes when invoked with invalid utf-8
|
||||||
* characters. */
|
* characters. */
|
||||||
@@ -5107,21 +5108,17 @@ not_ascii:
|
|||||||
int width;
|
int width;
|
||||||
|
|
||||||
/* There is a previous glyph, so we deal with combining
|
/* There is a previous glyph, so we deal with combining
|
||||||
* characters the canonical way. That is, setting the
|
* characters the canonical way.
|
||||||
* width of the previous glyph to 0. */
|
* Older versions of Pango used a positive x_offset,
|
||||||
glyphs->glyphs[i - 1].geometry.width = 0;
|
* then set the width of the previous glyph to zero.
|
||||||
|
* Newer versions of Pango use a negative x_offset.
|
||||||
|
* For both adjust the x_offset to position the glyph in
|
||||||
|
* the middle. */
|
||||||
|
if (glyph->geometry.x_offset >= 0)
|
||||||
|
glyphs->glyphs[i - 1].geometry.width = 0;
|
||||||
width = cells * gui.char_width * PANGO_SCALE;
|
width = cells * gui.char_width * PANGO_SCALE;
|
||||||
glyph->geometry.x_offset +=
|
glyph->geometry.x_offset +=
|
||||||
MAX(0, width - cluster_width) / 2;
|
MAX(0, width - cluster_width) / 2;
|
||||||
#if 0
|
|
||||||
/* Dirty hack: for "monospace 13" font there is a bug that
|
|
||||||
* draws composing chars in the wrong position. Add
|
|
||||||
* "width" to the offset to work around that. */
|
|
||||||
if (monospace13)
|
|
||||||
glyph->geometry.x_offset = width;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
glyph->geometry.width = width;
|
|
||||||
}
|
}
|
||||||
else /* i == 0 "cannot happen" */
|
else /* i == 0 "cannot happen" */
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user