changeset 37153:3799cab1815b

(x_use_underline_position_properties): New variable. (x_draw_glyph_string): Use it. (syms_of_xterm): DEFVAR_BOOL it.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 03 Apr 2001 11:25:12 +0000
parents 693e61ce18ff
children acbc3f69984d
files src/xterm.c
diffstat 1 files changed, 14 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/xterm.c	Tue Apr 03 11:16:17 2001 +0000
+++ b/src/xterm.c	Tue Apr 03 11:25:12 2001 +0000
@@ -256,6 +256,10 @@
 
 int x_stretch_cursor_p;
 
+/* Non-zero means make use of UNDERLINE_POSITION font properties.  */
+
+int x_use_underline_position_properties;
+
 /* This is a chain of structures for all the X displays currently in
    use.  */
 
@@ -4498,7 +4502,8 @@
 	     ROUND ((maximum descent) / 2), with
 	     ROUND(x) = floor (x + 0.5)  */
 	  
-	  if (XGetFontProperty (s->font, XA_UNDERLINE_POSITION, &tem))
+	  if (x_use_underline_position_properties
+	      && XGetFontProperty (s->font, XA_UNDERLINE_POSITION, &tem))
 	    y = s->ybase + (long) tem;
 	  else if (s->face->font)
 	    y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2;
@@ -14411,6 +14416,14 @@
 wide as that tab on the display.");
   x_stretch_cursor_p = 0;
 
+  DEFVAR_BOOL ("x-use-underline-position-properties",
+	       &x_use_underline_position_properties,
+     "*Non-nil means make use of UNDERLINE_POSITION font properties.\n\
+Nil means ignore them.  If you encounter fonts with bogus\n\
+UNDERLINE_POSITION font properties, for example 7x13 on XFree prior\n\
+to 4.1, set this to nil.");
+  x_use_underline_position_properties = 1;
+
   DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars,
     "What X toolkit scroll bars Emacs uses.\n\
 A value of nil means Emacs doesn't use X toolkit scroll bars.\n\