Mercurial > emacs
comparison src/xterm.c @ 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 | 187f754d89cc |
children | 5c27e50f91d1 |
comparison
equal
deleted
inserted
replaced
37152:693e61ce18ff | 37153:3799cab1815b |
---|---|
253 /* Non-zero means draw block and hollow cursor as wide as the glyph | 253 /* Non-zero means draw block and hollow cursor as wide as the glyph |
254 under it. For example, if a block cursor is over a tab, it will be | 254 under it. For example, if a block cursor is over a tab, it will be |
255 drawn as wide as that tab on the display. */ | 255 drawn as wide as that tab on the display. */ |
256 | 256 |
257 int x_stretch_cursor_p; | 257 int x_stretch_cursor_p; |
258 | |
259 /* Non-zero means make use of UNDERLINE_POSITION font properties. */ | |
260 | |
261 int x_use_underline_position_properties; | |
258 | 262 |
259 /* This is a chain of structures for all the X displays currently in | 263 /* This is a chain of structures for all the X displays currently in |
260 use. */ | 264 use. */ |
261 | 265 |
262 struct x_display_info *x_display_list; | 266 struct x_display_info *x_display_list; |
4496 specs, and its default is | 4500 specs, and its default is |
4497 | 4501 |
4498 ROUND ((maximum descent) / 2), with | 4502 ROUND ((maximum descent) / 2), with |
4499 ROUND(x) = floor (x + 0.5) */ | 4503 ROUND(x) = floor (x + 0.5) */ |
4500 | 4504 |
4501 if (XGetFontProperty (s->font, XA_UNDERLINE_POSITION, &tem)) | 4505 if (x_use_underline_position_properties |
4506 && XGetFontProperty (s->font, XA_UNDERLINE_POSITION, &tem)) | |
4502 y = s->ybase + (long) tem; | 4507 y = s->ybase + (long) tem; |
4503 else if (s->face->font) | 4508 else if (s->face->font) |
4504 y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2; | 4509 y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2; |
4505 else | 4510 else |
4506 y = s->y + s->height - h; | 4511 y = s->y + s->height - h; |
14409 "*Non-nil means draw block cursor as wide as the glyph under it.\n\ | 14414 "*Non-nil means draw block cursor as wide as the glyph under it.\n\ |
14410 For example, if a block cursor is over a tab, it will be drawn as\n\ | 14415 For example, if a block cursor is over a tab, it will be drawn as\n\ |
14411 wide as that tab on the display."); | 14416 wide as that tab on the display."); |
14412 x_stretch_cursor_p = 0; | 14417 x_stretch_cursor_p = 0; |
14413 | 14418 |
14419 DEFVAR_BOOL ("x-use-underline-position-properties", | |
14420 &x_use_underline_position_properties, | |
14421 "*Non-nil means make use of UNDERLINE_POSITION font properties.\n\ | |
14422 Nil means ignore them. If you encounter fonts with bogus\n\ | |
14423 UNDERLINE_POSITION font properties, for example 7x13 on XFree prior\n\ | |
14424 to 4.1, set this to nil."); | |
14425 x_use_underline_position_properties = 1; | |
14426 | |
14414 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars, | 14427 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars, |
14415 "What X toolkit scroll bars Emacs uses.\n\ | 14428 "What X toolkit scroll bars Emacs uses.\n\ |
14416 A value of nil means Emacs doesn't use X toolkit scroll bars.\n\ | 14429 A value of nil means Emacs doesn't use X toolkit scroll bars.\n\ |
14417 Otherwise, value is a symbol describing the X toolkit."); | 14430 Otherwise, value is a symbol describing the X toolkit."); |
14418 #ifdef USE_TOOLKIT_SCROLL_BARS | 14431 #ifdef USE_TOOLKIT_SCROLL_BARS |