ArdourButton draws a custom insensitive background, using
the color "gtk_background". This can conflict with gtk's
insensitive background color when using round-corners.
A Pango::Layout created by Gtk::Widget::get_pango_context ()
does not have any font set. The Font is inherited from the
layout's context.
The actual font is set when the layout is used in
on_expose_event() via get_window ()->create_cairo_context ().
In some cases we rely on the font-size to calculate the widget's
size before rendering. At this point in time there is no drawing
context from which to inherit the style.
Furthermore, even after a call to `ensure_style()` in the c'tor
of a Widget get_font() simply returns the default value.
All Widgets that rely an Pango::Layout font size during
size-requests have to explicitly set the font.
This fixes various overlarge buttons with the initial default layout.
When a button has a fixed size, there's no need to call queue_resize().
This fixes an issue with the ArdourClock info displays when slaved.
The Timecode and Delta display text changes in small intervals and
caused excessive CPU load due to GUI size-requests + redraws.
Add option to use ArduorButton as standalone Toggle/Checkbox.
Usually ArdourButton relegates this to Actions or is backed by Config.
This allows to use the Button as standalone Toggle, get_active()
It should maybe be a derived Class, but ArdourButton is already beyond
that..
The queued resize will only happen trigger a size-request when the
widget is realized, and on_size_request() calls ensure_layout().
Moreover, this over protection meant that sometimes a resize wasn't
noticed by the button containers.