From fef27dc1ad8e5b3fe4d11bf0c7711151d4c8ada8 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Mitsuharu Date: Fri, 21 Mar 2014 19:14:10 +0900 Subject: [PATCH] Fix regression introduced by patch for Bug#10500. * xterm.c (x_draw_image_relief): Respect Vtool_bar_button_margin. * w32term.c (x_draw_image_relief): Likewise. --- src/ChangeLog | 6 ++++++ src/w32term.c | 24 ++++++++++++++++++++---- src/xterm.c | 24 ++++++++++++++++++++---- 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index ccd8fb46957..dbfb1436fe1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2014-03-21 YAMAMOTO Mitsuharu + + Fix regression introduced by patch for Bug#10500. + * xterm.c (x_draw_image_relief): Respect Vtool_bar_button_margin. + * w32term.c (x_draw_image_relief): Likewise. + 2014-03-21 Martin Rudalics * w32fns.c (w32_wnd_proc): For WM_WINDOWPOSCHANGING don't diff --git a/src/w32term.c b/src/w32term.c index ac8f9a2092d..15b502b7c1b 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -1892,6 +1892,7 @@ static void x_draw_image_relief (struct glyph_string *s) { int x1, y1, thick, raised_p, top_p, bot_p, left_p, right_p; + int extra_x, extra_y; RECT r; int x = s->x; int y = s->ybase - image_ascent (s->img, s->face, &s->slice); @@ -1925,16 +1926,31 @@ x_draw_image_relief (struct glyph_string *s) x1 = x + s->slice.width - 1; y1 = y + s->slice.height - 1; + + extra_x = extra_y = 0; + if (s->face->id == TOOL_BAR_FACE_ID) + { + if (CONSP (Vtool_bar_button_margin) + && INTEGERP (XCAR (Vtool_bar_button_margin)) + && INTEGERP (XCDR (Vtool_bar_button_margin))) + { + extra_x = XINT (XCAR (Vtool_bar_button_margin)); + extra_y = XINT (XCDR (Vtool_bar_button_margin)); + } + else if (INTEGERP (Vtool_bar_button_margin)) + extra_x = extra_y = XINT (Vtool_bar_button_margin); + } + top_p = bot_p = left_p = right_p = 0; if (s->slice.x == 0) - x -= thick, left_p = 1; + x -= thick + extra_x, left_p = 1; if (s->slice.y == 0) - y -= thick, top_p = 1; + y -= thick + extra_y, top_p = 1; if (s->slice.x + s->slice.width == s->img->width) - x1 += thick, right_p = 1; + x1 += thick + extra_x, right_p = 1; if (s->slice.y + s->slice.height == s->img->height) - y1 += thick, bot_p = 1; + y1 += thick + extra_y, bot_p = 1; x_setup_relief_colors (s); get_glyph_string_clip_rect (s, &r); diff --git a/src/xterm.c b/src/xterm.c index 1136b671822..fc61fb248ef 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -2162,6 +2162,7 @@ static void x_draw_image_relief (struct glyph_string *s) { int x1, y1, thick, raised_p, top_p, bot_p, left_p, right_p; + int extra_x, extra_y; XRectangle r; int x = s->x; int y = s->ybase - image_ascent (s->img, s->face, &s->slice); @@ -2194,16 +2195,31 @@ x_draw_image_relief (struct glyph_string *s) x1 = x + s->slice.width - 1; y1 = y + s->slice.height - 1; + + extra_x = extra_y = 0; + if (s->face->id == TOOL_BAR_FACE_ID) + { + if (CONSP (Vtool_bar_button_margin) + && INTEGERP (XCAR (Vtool_bar_button_margin)) + && INTEGERP (XCDR (Vtool_bar_button_margin))) + { + extra_x = XINT (XCAR (Vtool_bar_button_margin)); + extra_y = XINT (XCDR (Vtool_bar_button_margin)); + } + else if (INTEGERP (Vtool_bar_button_margin)) + extra_x = extra_y = XINT (Vtool_bar_button_margin); + } + top_p = bot_p = left_p = right_p = 0; if (s->slice.x == 0) - x -= thick, left_p = 1; + x -= thick + extra_x, left_p = 1; if (s->slice.y == 0) - y -= thick, top_p = 1; + y -= thick + extra_y, top_p = 1; if (s->slice.x + s->slice.width == s->img->width) - x1 += thick, right_p = 1; + x1 += thick + extra_x, right_p = 1; if (s->slice.y + s->slice.height == s->img->height) - y1 += thick, bot_p = 1; + y1 += thick + extra_y, bot_p = 1; x_setup_relief_colors (s); get_glyph_string_clip_rect (s, &r); -- 2.39.2