From 5ccb2e23039aa914d864bde51136b3ccf1a808be Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 4 Sep 2014 20:18:01 +0000 Subject: fix shadow, split things --- spectrogram.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/spectrogram.c b/spectrogram.c index 4fcc31e..d5b3408 100644 --- a/spectrogram.c +++ b/spectrogram.c @@ -150,18 +150,22 @@ usage(void) exit(0); } +void +blit(Display *d, Drawable p, GC gc, XRectangle r) +{ + XCopyArea(d, p, p, gc, 0, 0, r.width, r.height - 1, 0, 1); +} + void draw_panel(Display *d, struct panel *p) { int i, v, x; /* blit waterfall */ - XCopyArea(d, p->wf->pix, p->wf->pix, p->wf->gc, - 0, 0, p->wf->geo.width, p->wf->geo.height - 1, 0, 1); - + blit(d, p->wf->pix, p->wf->gc, p->wf->geo); /* blit shadow mask */ - XCopyArea(d, p->shadow->mask, p->shadow->mask, p->shadow->gc, - 0, 0, p->shadow->geo.width, p->shadow->geo.height - 1, 0, 1); + blit(d, p->shadow->mask, p->shadow->gc, p->shadow->geo); + /* clear spectrogram */ XSetForeground(d, p->sp->gc, p->palette[0]); @@ -190,7 +194,7 @@ draw_panel(Display *d, struct panel *p) } /* copy mask to shadow mask */ - XSetClipMask(d, p->shadow->gc, p->shadow->mask); + XSetClipMask(d, p->shadow->gc, p->bg->mask); XCopyArea(d, p->bg->mask, p->shadow->mask, p->shadow->gc, 0, 0, p->bg->geo.width, p->bg->geo.height, 0, 0); XSetClipMask(d, p->shadow->gc, None); -- cgit v1.2.3