# HG changeset patch # User Stefan Monnier # Date 1213129330 0 # Node ID 953225ddde83e38c5ec3311a0c736782eb77cc13 # Parent 82a0e68857159db0e3e42ec06673873440ba9753 * xdisp.c (underline_minimum_offset): Rename from xterm.c's x_underline_minimum_display_offset. (syms_of_xdisp): Declare it here rather than in xterm.c. * dispextern.h (underline_minimum_offset): Declare it. * w32term.c (x_draw_glyph_string): Use it. * xterm.c (x_underline_minimum_display_offset): Move to xdisp.c. (syms_of_xterm): Don't declare it any more. (x_draw_glyph_string): Adjust to the new name. * cus-start.el (underline-minimum-offset) Rename from x-underline-minimum-display-offset. diff -r 82a0e6885715 -r 953225ddde83 lisp/ChangeLog --- a/lisp/ChangeLog Tue Jun 10 20:01:54 2008 +0000 +++ b/lisp/ChangeLog Tue Jun 10 20:22:10 2008 +0000 @@ -1,3 +1,8 @@ +2008-06-10 Stefan Monnier + + * cus-start.el (underline-minimum-offset) Rename from + x-underline-minimum-display-offset. + 2008-06-10 David De La Harpe Golden (tiny change) * cus-start.el (x-underline-minimum-display-offset): Give it a type. diff -r 82a0e6885715 -r 953225ddde83 lisp/cus-start.el --- a/lisp/cus-start.el Tue Jun 10 20:01:54 2008 +0000 +++ b/lisp/cus-start.el Tue Jun 10 20:22:10 2008 +0000 @@ -331,6 +331,7 @@ (unibyte-display-via-language-environment mule boolean) (blink-cursor-alist cursor alist "22.1") (overline-margin display integer "22.1") + (underline-minimum-offset display integer "23.1") (mouse-autoselect-window display (choice (const :tag "Off (nil)" :value nil) @@ -348,7 +349,6 @@ ;; xterm.c (x-use-underline-position-properties display boolean "22.1") (x-underline-at-descent-line display boolean "22.1") - (x-underline-minimum-display-offset display integer "23.1") (x-stretch-cursor display boolean "21.1"))) this symbol group type standard version native-p ;; This function turns a value diff -r 82a0e6885715 -r 953225ddde83 src/ChangeLog --- a/src/ChangeLog Tue Jun 10 20:01:54 2008 +0000 +++ b/src/ChangeLog Tue Jun 10 20:22:10 2008 +0000 @@ -1,3 +1,14 @@ +2008-06-10 Stefan Monnier + + * xdisp.c (underline_minimum_offset): Rename from xterm.c's + x_underline_minimum_display_offset. + (syms_of_xdisp): Declare it here rather than in xterm.c. + * dispextern.h (underline_minimum_offset): Declare it. + * w32term.c (x_draw_glyph_string): Use it. + * xterm.c (x_underline_minimum_display_offset): Move to xdisp.c. + (syms_of_xterm): Don't declare it any more. + (x_draw_glyph_string): Adjust to the new name. + 2008-06-10 David De La Harpe Golden (tiny change) * xterm.c (x_underline_minimum_display_offset): New var. diff -r 82a0e6885715 -r 953225ddde83 src/dispextern.h --- a/src/dispextern.h Tue Jun 10 20:01:54 2008 +0000 +++ b/src/dispextern.h Tue Jun 10 20:22:10 2008 +0000 @@ -2705,6 +2705,7 @@ extern int last_tool_bar_item; extern Lisp_Object Vmouse_autoselect_window; extern int unibyte_display_via_language_environment; +extern EMACS_INT underline_minimum_offset; extern void reseat_at_previous_visible_line_start P_ ((struct it *)); diff -r 82a0e6885715 -r 953225ddde83 src/macterm.c --- a/src/macterm.c Tue Jun 10 20:01:54 2008 +0000 +++ b/src/macterm.c Tue Jun 10 20:22:10 2008 +0000 @@ -4083,7 +4083,7 @@ if (s->face->font) y = s->ybase + (s->face->font->max_bounds.descent + 1) / 2; } - + /* FIXME: Obey underline_minimum_offset. */ if (s->face->underline_defaulted_p) mac_fill_rectangle (s->f, s->gc, s->x, y, s->background_width, h); diff -r 82a0e6885715 -r 953225ddde83 src/w32term.c --- a/src/w32term.c Tue Jun 10 20:01:54 2008 +0000 +++ b/src/w32term.c Tue Jun 10 20:22:10 2008 +0000 @@ -2910,6 +2910,7 @@ else if (s->font) position = (s->font->descent + 1) / 2; } + position = max (position, underline_minimum_offset); } /* Check the sanity of thickness and position. We should avoid drawing underline out of the current line area. */ diff -r 82a0e6885715 -r 953225ddde83 src/xdisp.c --- a/src/xdisp.c Tue Jun 10 20:01:54 2008 +0000 +++ b/src/xdisp.c Tue Jun 10 20:22:10 2008 +0000 @@ -715,6 +715,12 @@ EMACS_INT overline_margin; +/* Require underline to be at least this many screen pixels below baseline + This to avoid underline "merging" with the base of letters at small + font sizes, particularly when x_use_underline_position_properties is on. */ + +EMACS_INT underline_minimum_offset; + /* Value returned from text property handlers (see below). */ enum prop_handled @@ -24801,6 +24807,15 @@ The default value is 2: the height of the overline (1 pixel) plus 1 pixel margin to the caracter height. */); overline_margin = 2; + + DEFVAR_INT ("underline-minimum-offset", + &underline_minimum_offset, + doc: /* Minimum distance between baseline and underline. +This can improve legibility of underlined text at small font sizes, +particularly when using variable `x-use-underline-position-properties' +with fonts that specify an UNDERLINE_POSITION relatively close to the +baseline. The default value is 0. */); + underline_minimum_offset = 0; } diff -r 82a0e6885715 -r 953225ddde83 src/xterm.c --- a/src/xterm.c Tue Jun 10 20:01:54 2008 +0000 +++ b/src/xterm.c Tue Jun 10 20:22:10 2008 +0000 @@ -183,12 +183,6 @@ int x_underline_at_descent_line; -/* Require underline to be at least this many screen pixels below baseline - This to avoid underline "merging" with the base of letters at small - font sizes, particularly when x_use_underline_position_properties is on. */ - -int x_underline_minimum_display_offset; - /* This is a chain of structures for all the X displays currently in use. */ @@ -2750,8 +2744,7 @@ else if (s->font) position = (s->font->descent + 1) / 2; } - if (x_underline_minimum_display_offset) - position = max (position, eabs (x_underline_minimum_display_offset)); + position = max (position, underline_minimum_offset); } /* Check the sanity of thickness and position. We should avoid drawing underline out of the current line area. */ @@ -10789,8 +10782,8 @@ doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties. A value of nil means ignore them. If you encounter fonts with bogus UNDERLINE_POSITION font properties, for example 7x13 on XFree prior -to 4.1, set this to nil. Variable `x-underline-minimum-display-offset' may -be used to override the font's UNDERLINE_POSITION for small font display +to 4.1, set this to nil. You can also use `underline-minimum-offset' +to override the font's UNDERLINE_POSITION for small font display sizes. */); x_use_underline_position_properties = 1; @@ -10802,16 +10795,6 @@ baseline level. The default value is nil. */); x_underline_at_descent_line = 0; - DEFVAR_INT ("x-underline-minimum-display-offset", - &x_underline_minimum_display_offset, - doc: /* *When > 0, underline is drawn at least that many screen pixels below baseline. -This can improve legibility of underlined text at small font sizes, -particularly when using variable `x-use-underline-position-properties' -with fonts that specify an UNDERLINE_POSITION relatively close to the -baseline. The default value is 0. */); - x_underline_minimum_display_offset = 0; - - DEFVAR_BOOL ("x-mouse-click-focus-ignore-position", &x_mouse_click_focus_ignore_position, doc: /* Non-nil means that a mouse click to focus a frame does not move point.