+ /* Tweaks to mess the nice stuff above up again. */
+ if (_tweaks & TrackHeader) {
+ // forget everything above and just use a fixed square [em] size
+ // "TrackHeader Buttons" are single letter (usually uppercase)
+ // a SizeGroup is much less efficient (lots of gtk work under the hood for each track)
+ const int wh = std::max (rint (TRACKHEADERBTNW * char_avg_pixel_width()), ceil (char_pixel_height() * BASELINESTRETCH + 1.));
+ req->width = wh;
+ req->height = wh;
+ }
+ else if (_tweaks & Square) {
+ // currerntly unused (again)
+ if (req->width < req->height)
+ req->width = req->height;
+ if (req->height < req->width)
+ req->height = req->width;
+ } else if (_sizing_text.empty() && _text_width > 0 && !(_elements & (Menu | Indicator))) {
+ // properly centered text for those elements that are centered
+ // (no sub-pixel offset)
+ if ((req->width - _text_width) & 1) { ++req->width; }
+ if ((req->height - _text_height) & 1) { ++req->height; }
+ }
+#if 0
+ printf("REQ: %s: %dx%d\n", get_name().c_str(), req->width, req->height);
+#endif