diff --git a/WINGs/wframe.c b/WINGs/wframe.c index fdd2884..30b9eb6 100644 --- a/WINGs/wframe.c +++ b/WINGs/wframe.c @@ -60,8 +60,11 @@ static void repaintFrame(Frame * fPtr) { W_View *view = fPtr->view; W_Screen *scrPtr = view->screen; + const W_RenderBackend *R = scrPtr->renderBackend; + void *rctx = scrPtr->renderBackendCtx; - XClearWindow(scrPtr->display, view->window); + R->fill_rect(rctx, (WMDrawable)view->window, view->backColor, + 0, 0, view->size.width, view->size.height); paintFrame(fPtr); } @@ -70,7 +73,6 @@ static void paintFrame(Frame * fPtr) W_View *view = fPtr->view; W_Screen *scrPtr = view->screen; WMFont *font = scrPtr->normalFont; - Display *display = scrPtr->display; int tx, ty, tw, th, tlen; int fy, fh; Bool drawTitle; @@ -137,51 +139,9 @@ static void paintFrame(Frame * fPtr) drawTitle = False; } - { - XRectangle rect; - Region region, tmp; - GC gc[4]; - int i; - - region = XCreateRegion(); - - rect.x = 0; - rect.y = 0; - rect.width = view->size.width; - rect.height = view->size.height; - XUnionRectWithRegion(&rect, region, region); - if (drawTitle) { - tmp = XCreateRegion(); - rect.x = tx; - rect.y = ty; - rect.width = tw; - rect.height = th; - XUnionRectWithRegion(&rect, tmp, tmp); - XSubtractRegion(region, tmp, region); - XDestroyRegion(tmp); - } - gc[0] = WMColorGC(scrPtr->black); - gc[1] = WMColorGC(scrPtr->darkGray); - gc[2] = WMColorGC(scrPtr->gray); - gc[3] = WMColorGC(scrPtr->white); - - if (drawTitle) { - for (i = 0; i < 4; i++) { - XSetRegion(display, gc[i], region); - } - } - XDestroyRegion(region); - - W_DrawReliefWithGC(scrPtr, (WMDrawable)view->window, 0, fy, view->size.width, fh, - fPtr->flags.relief, scrPtr->black, scrPtr->darkGray, - scrPtr->gray, scrPtr->white); - - if (drawTitle) { - for (i = 0; i < 4; i++) { - XSetClipMask(display, gc[i], None); - } - } - } + W_DrawReliefWithGC(scrPtr, (WMDrawable)view->window, 0, fy, view->size.width, fh, + fPtr->flags.relief, scrPtr->black, scrPtr->darkGray, + scrPtr->gray, scrPtr->white); if (drawTitle) { /* can't draw AA text over and over again because it gets messed */