NS equivalents of xterm.c and w32term.c changes

* src/nsterm.m (ns_maybe_dumpglyphs_background): Force redraw of
glyph string background also when the font in use claims
preposterously large global height value.  Helps to remove
artifacts left from previous displays when glyphless characters
are displayed as hex code in a box.
(x_new_font): Call get_font_ascent_descent to obtain a reasonable
value for FRAME_LINE_HEIGHT, even when a font claims very large
value for its height.
This commit is contained in:
Eli Zaretskii 2015-06-01 17:46:20 +03:00
parent cab645a62f
commit 957cbfd765

View file

@ -2928,6 +2928,11 @@ Function modeled after x_draw_glyph_string_box ().
{
int box_line_width = max (s->face->box_line_width, 0);
if (FONT_HEIGHT (s->font) < s->height - 2 * box_line_width
/* When xdisp.c ignores FONT_HEIGHT, we cannot trust font
dimensions, since the actual glyphs might be much
smaller. So in that case we always clear the rectangle
with background color. */
|| FONT_TOO_HIGH (s->font)
|| s->font_not_found_p || s->extends_to_end_of_line_p || force_p)
{
struct face *face;
@ -7687,6 +7692,7 @@ @implementation EmacsDocument
{
struct font *font = XFONT_OBJECT (font_object);
EmacsView *view = FRAME_NS_VIEW (f);
int font_ascent, font_descent;
if (fontset < 0)
fontset = fontset_from_font (font_object);
@ -7701,7 +7707,8 @@ @implementation EmacsDocument
FRAME_BASELINE_OFFSET (f) = font->baseline_offset;
FRAME_COLUMN_WIDTH (f) = font->average_width;
FRAME_LINE_HEIGHT (f) = font->height;
get_font_ascent_descent (font, &font_ascent, &font_descent);
FRAME_LINE_HEIGHT (f) = font_ascent + font_descent;
/* Compute the scroll bar width in character columns. */
if (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) > 0)