X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fbuttonwidget.cc;h=534bdc8409f84b35c8aabb091baedcaaa87c09ff;hb=7048f64f4580b8d43176ba2e3114c339c0013a40;hp=4c1bd908d0d73958bdec7921efc91fd1e3559178;hpb=dd6f90684899e8e26e653af4b2e7e7eab1abf798;p=chaz%2Fopenbox diff --git a/src/buttonwidget.cc b/src/buttonwidget.cc index 4c1bd908..534bdc84 100644 --- a/src/buttonwidget.cc +++ b/src/buttonwidget.cc @@ -80,6 +80,7 @@ void ButtonWidget::setStyle(otk::RenderStyle *style) void ButtonWidget::update() { printf("ButtonWidget::update()\n"); + otk::Widget::update(); } void ButtonWidget::renderForeground() @@ -88,6 +89,7 @@ void ButtonWidget::renderForeground() int width; bool draw = _dirty; + printf("ButtonWidget::renderForeground()\n"); otk::Widget::renderForeground(); if (draw) { @@ -111,6 +113,7 @@ void ButtonWidget::renderForeground() assert(false); // there's no other button widgets! } + assert(pm->mask); if (pm->mask == None) return; // no mask for the button, leave it empty width = _rect.width(); @@ -119,14 +122,13 @@ void ButtonWidget::renderForeground() _style->buttonUnfocusColor()); // set the clip region + int x = (width - pm->w) / 2, y = (width - pm->h) / 2; XSetClipMask(**otk::display, color->gc(), pm->mask); - XSetClipOrigin(**otk::display, color->gc(), - (width - pm->w)/2, (width - pm->h)/2); + XSetClipOrigin(**otk::display, color->gc(), x, y); // fill in the clipped region - XFillRectangle(**otk::display, _window, color->gc(), - (width - pm->w)/2, (width - pm->h)/2, - (width + pm->w)/2, (width + pm->h)/2); + XFillRectangle(**otk::display, _surface->pixmap(), color->gc(), x, y, + x + pm->w, y + pm->h); // unset the clip region XSetClipMask(**otk::display, color->gc(), None);