13
0

Avoid 1px size changes when sizing_text() is used

When requesting a size for ArdourButton, the width and height of the
button could be increased by one to ensure the center of the text would
lie exactly at the center of the button.

I initially thought that it was a good idea even when the text used for
sizing was frozen, but the main (and only?) use-case for that is to
actually freeze the size of the button regardless of the actual
displayed text, so jittering by one pixel is not welcome.

Only do the centering tweak if there is no sizing text.
This commit is contained in:
Julien "_FrnchFrgg_" RIVAUD 2016-08-25 19:00:05 +02:00
parent aee5d24cfa
commit 3921e33c2a

View File

@ -649,7 +649,7 @@ ArdourButton::on_size_request (Gtk::Requisition* req)
req->width = req->height;
if (req->height < req->width)
req->height = req->width;
} else if (_text_width > 0 && !(_elements & (Menu | Indicator))) {
} 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; }