diff --git a/gtk2_ardour/audio_clock.cc b/gtk2_ardour/audio_clock.cc index c1d256fd02..015e328307 100644 --- a/gtk2_ardour/audio_clock.cc +++ b/gtk2_ardour/audio_clock.cc @@ -80,6 +80,7 @@ AudioClock::AudioClock (const string& clock_name, bool transient, const string& , foreground_attr (0) , first_height (0) , first_width (0) + , style_resets_first (true) , layout_height (0) , layout_width (0) , info_height (0) @@ -550,8 +551,15 @@ AudioClock::on_size_request (Gtk::Requisition* req) req->height += separator_height; } - first_height = req->height; - first_width = req->width; + if (_fixed_width) { + first_height = req->height; + first_width = req->width; + } else { + if (first_width == 0) { + first_height = req->height; + first_width = req->width; + } + } } void @@ -2213,8 +2221,13 @@ void AudioClock::on_style_changed (const Glib::RefPtr& old_style) { CairoWidget::on_style_changed (old_style); - first_width = 0; - first_height = 0; + if (style_resets_first) { + first_width = 0; + first_height = 0; + } + if (!_fixed_width) { + style_resets_first = false; + } set_font (); set_colors (); } diff --git a/gtk2_ardour/audio_clock.h b/gtk2_ardour/audio_clock.h index dae6bb1ae4..81fd9172d9 100644 --- a/gtk2_ardour/audio_clock.h +++ b/gtk2_ardour/audio_clock.h @@ -121,6 +121,7 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr int first_height; int first_width; + bool style_resets_first; int layout_height; int layout_width; int info_height;