From: YAMAMOTO Mitsuharu Date: Fri, 4 Jan 2013 01:58:07 +0000 (+0900) Subject: Make underwave look more triangular and also degrade gracefully for small fonts.... X-Git-Tag: emacs-24.2.92~37 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f032a318307096c87c4c19928e623e30175d9b1a;p=emacs.git Make underwave look more triangular and also degrade gracefully for small fonts. (Bug#13000) --- diff --git a/src/ChangeLog b/src/ChangeLog index ea882770765..8699dc12d9b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2013-01-04 YAMAMOTO Mitsuharu + + * nsterm.m (ns_draw_underwave): + * w32term.c (w32_draw_underwave): + * xterm.c (x_draw_underwave): Make underwave look more triangular + and also degrade gracefully for small fonts. (Bug#13000) + 2012-12-31 Glenn Morris * keymap.c (Fkey_description): Doc fix. (Bug#13323) diff --git a/src/nsterm.m b/src/nsterm.m index d9ebf714a9a..fce43587b11 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -2554,7 +2554,7 @@ ns_get_glyph_string_clip_rect (struct glyph_string *s, NativeRectangle *nr) Draw a wavy line under glyph string s. The wave fills wave_height pixels from y. - x wave_length = 3 + x wave_length = 2 -- y * * * * * |* * * * * * * * * @@ -2564,14 +2564,14 @@ ns_get_glyph_string_clip_rect (struct glyph_string *s, NativeRectangle *nr) static void ns_draw_underwave (struct glyph_string *s, CGFloat width, CGFloat x) { - int wave_height = 3, wave_length = 3; + int wave_height = 3, wave_length = 2; int y, dx, dy, odd, xmax; NSPoint a, b; NSRect waveClip; dx = wave_length; dy = wave_height - 1; - y = s->ybase + 1; + y = s->ybase - wave_height + 3; xmax = x + width; /* Find and set clipping rectangle */ @@ -2580,10 +2580,10 @@ ns_draw_underwave (struct glyph_string *s, CGFloat width, CGFloat x) NSRectClip (waveClip); /* Draw the waves */ - a.x = x - ((int)(x) % dx); + a.x = x - ((int)(x) % dx) + 0.5; b.x = a.x + dx; odd = (int)(a.x/dx) % 2; - a.y = b.y = y; + a.y = b.y = y + 0.5; if (odd) a.y += dy; @@ -2594,7 +2594,7 @@ ns_draw_underwave (struct glyph_string *s, CGFloat width, CGFloat x) { [NSBezierPath strokeLineFromPoint:a toPoint:b]; a.x = b.x, a.y = b.y; - b.x += dx, b.y = y + odd*dy; + b.x += dx, b.y = y + 0.5 + odd*dy; odd = !odd; } diff --git a/src/w32term.c b/src/w32term.c index d7a76ccf773..84afd8c300b 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -356,7 +356,7 @@ w32_restore_glyph_string_clip (struct glyph_string *s) void w32_draw_underwave (struct glyph_string *s, COLORREF color) { - int wave_height = 2, wave_length = 3; + int wave_height = 3, wave_length = 2; int dx, dy, x0, y0, width, x1, y1, x2, y2, odd, xmax; XRectangle wave_clip, string_clip, final_clip; RECT w32_final_clip, w32_string_clip; @@ -365,7 +365,7 @@ w32_draw_underwave (struct glyph_string *s, COLORREF color) dx = wave_length; dy = wave_height - 1; x0 = s->x; - y0 = s->ybase + 1; + y0 = s->ybase - wave_height + 3; width = s->width; xmax = x0 + width; diff --git a/src/xterm.c b/src/xterm.c index 47a38eeefae..32b19b5cffb 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -2656,14 +2656,14 @@ x_draw_stretch_glyph_string (struct glyph_string *s) static void x_draw_underwave (struct glyph_string *s) { - int wave_height = 2, wave_length = 3; + int wave_height = 3, wave_length = 2; int dx, dy, x0, y0, width, x1, y1, x2, y2, odd, xmax; XRectangle wave_clip, string_clip, final_clip; dx = wave_length; dy = wave_height - 1; x0 = s->x; - y0 = s->ybase + 1; + y0 = s->ybase - wave_height + 3; width = s->width; xmax = x0 + width;