+ (FRAME_LINE_HEIGHT ((F)) > FONT_HEIGHT ((FONT)))) / 2 \
- (FONT_DESCENT (FRAME_FONT (F)) - FRAME_BASELINE_OFFSET (F)))
+/* A heuristic test for fonts that claim they need a preposterously
+ large vertical space. The heuristics is in the factor of 3. We
+ ignore the ascent and descent values reported by such fonts, and
+ instead go by the values reported for individual glyphs. */
+#define FONT_TOO_HIGH(ft) ((ft)->ascent + (ft)->descent > 3*(ft)->pixel_size)
+
\f
/***********************************************************************
Faces
#ifdef USE_CAIRO
void *cr_data;
+ void *cr_data2;
#endif
#ifdef HAVE_X_WINDOWS
/* X images of the image, corresponding to the above Pixmaps.
extern void produce_stretch_glyph (struct it *);
extern int merge_glyphless_glyph_face (struct it *);
+extern void get_font_ascent_descent (struct font *, int *, int *);
+
#ifdef HAVE_WINDOW_SYSTEM
#ifdef GLYPH_DEBUG
bool tabs_safe_p (int);
void init_baud_rate (int);
void init_sigio (int);
-void ignore_sigio (void);
/* Defined in xfaces.c. */