1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-20 19:42:53 -08:00

* src/xterm.c (x_draw_image_relief): Add missing type check for Vtool_bar_button_margin.

Fixes: debbugs:10743
This commit is contained in:
Chong Yidong 2012-02-22 14:03:30 +08:00
parent f25aef2e1e
commit 86b847b644
2 changed files with 24 additions and 7 deletions

View file

@ -1,3 +1,8 @@
2012-02-22 Chong Yidong <cyd@gnu.org>
* xterm.c (x_draw_image_relief): Add missing type check for
Vtool_bar_button_margin (Bug#10743).
2012-02-21 Chong Yidong <cyd@gnu.org>
* fileio.c (Vfile_name_handler_alist): Doc fix.

View file

@ -2292,7 +2292,8 @@ x_draw_image_foreground (struct glyph_string *s)
static void
x_draw_image_relief (struct glyph_string *s)
{
int x0, y0, x1, y1, thick, raised_p, extra;
int x0, y0, x1, y1, thick, raised_p;
int extra_x, extra_y;
XRectangle r;
int x = s->x;
int y = s->ybase - image_ascent (s->img, s->face, &s->slice);
@ -2323,13 +2324,24 @@ x_draw_image_relief (struct glyph_string *s)
raised_p = s->img->relief > 0;
}
extra = s->face->id == TOOL_BAR_FACE_ID
? XINT (Vtool_bar_button_margin) : 0;
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 = XCAR (Vtool_bar_button_margin);
extra_y = XCDR (Vtool_bar_button_margin);
}
else if (INTEGERP (Vtool_bar_button_margin))
extra_x = extra_y = XINT (Vtool_bar_button_margin);
}
x0 = x - thick - extra;
y0 = y - thick - extra;
x1 = x + s->slice.width + thick - 1 + extra;
y1 = y + s->slice.height + thick - 1 + extra;
x0 = x - thick - extra_x;
y0 = y - thick - extra_y;
x1 = x + s->slice.width + thick - 1 + extra_x;
y1 = y + s->slice.height + thick - 1 + extra_y;
x_setup_relief_colors (s);
get_glyph_string_clip_rect (s, &r);