- control->drawBackground(*s, *(_client->focused() ?
- style->labelFocusBackground() :
- style->labelUnfocusBackground()));
+ const otk::RenderTexture *tx = (_client->focused() ?
+ style->labelFocusBackground() :
+ style->labelUnfocusBackground());
+ if (tx->parentRelative()) {
+ otk::pixel32 *dest = s->pixelData(), *src;
+ int w = _title_sur->size().width();
+
+ src = _title_sur->pixelData() + w * (geom.bevel + 1) + geom.title_x;
+
+ // get the background under the label
+ for (int y = 0; y < geom.button_size; ++y, src += w - geom.button_size)
+ for (int x = 0; x < geom.button_size; ++x, ++dest, ++src)
+ *dest = *src;
+ control->drawImage(*s, 0, 0, 0); // no image but draw the new background
+ } else
+ control->drawBackground(*s, *tx);
+ control->drawBackground(*s, *tx);