xgetshape
changeset 2:b832d3b3ed98 tip
taking offset into account in get_window_shape
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 01 Feb 2016 12:18:29 +0200 |
parents | 9b560415bad4 |
children | |
files | src/main.c |
diffstat | 1 files changed, 11 insertions(+), 7 deletions(-) [+] |
line diff
1.1 --- a/src/main.c Tue Nov 03 04:08:32 2015 +0200 1.2 +++ b/src/main.c Mon Feb 01 12:18:29 2016 +0200 1.3 @@ -333,20 +333,24 @@ 1.4 int bx, by, cx, cy; 1.5 unsigned int bw, bh, cw, ch; 1.6 int kind; 1.7 - int w, h; 1.8 + int xoffs, yoffs, w, h; 1.9 XRectangle *rects; 1.10 int i, rect_count, rect_order; 1.11 1.12 XShapeQueryExtents(dpy, win, &buse, &bx, &by, &bw, &bh, 1.13 &cuse, &cx, &cy, &cw, &ch); 1.14 - if(cuse) { 1.15 + if(buse) { 1.16 + w = bw; 1.17 + h = bh; 1.18 + xoffs = bx; 1.19 + yoffs = by; 1.20 + kind = ShapeBounding; 1.21 + } else if(cuse) { 1.22 w = cw; 1.23 h = ch; 1.24 + xoffs = cx; 1.25 + yoffs = cy; 1.26 kind = ShapeClip; 1.27 - } else if(buse) { 1.28 - w = bw; 1.29 - h = bh; 1.30 - kind = ShapeBounding; 1.31 } else { 1.32 fprintf(stderr, "XShapeQueryExtents returned no extents\n"); 1.33 return -1; 1.34 @@ -365,7 +369,7 @@ 1.35 } 1.36 1.37 for(i=0; i<rect_count; i++) { 1.38 - image_fillrect(img, rects[i].x, rects[i].y, rects[i].width, rects[i].height, 1.39 + image_fillrect(img, rects[i].x - xoffs, rects[i].y - yoffs, rects[i].width, rects[i].height, 1.40 255, 255, 255, 255); 1.41 } 1.42 return 0;