Fix xshape mask rounding

This commit is contained in:
Nikita Zlobin 2020-05-05 11:55:50 +05:00
parent d964455d36
commit dcf060effa

View File

@ -110,13 +110,10 @@ static void x_win_round_corners(struct window_x11 *win, const int rad)
/* To mark all pixels, which should get exposed, we /* To mark all pixels, which should get exposed, we
* use a circle for every corner and two overlapping rectangles */ * use a circle for every corner and two overlapping rectangles */
int fw = settings.frame_width / 2 + settings.frame_width % 2;
if (fw < 1)
fw = 1;
unsigned const int centercoords[] = { unsigned const int centercoords[] = {
-fw, -fw, 0, 0,
width - dia - 1, -fw, width - dia - 1, 0,
-fw, height - dia - 1, 0, height - dia - 1,
width - dia - 1, height - dia - 1, width - dia - 1, height - dia - 1,
}; };
@ -124,10 +121,10 @@ static void x_win_round_corners(struct window_x11 *win, const int rad)
XFillArc(xctx.dpy, XFillArc(xctx.dpy,
mask, mask,
shape_gc, shape_gc,
centercoords[i], centercoords[i]-1,
centercoords[i+1], centercoords[i+1]-1,
dia+fw, dia+2,
dia+fw, dia+2,
degrees * 0, degrees * 0,
degrees * 360); degrees * 360);
} }