summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/audio_clock.cc21
-rw-r--r--gtk2_ardour/audio_clock.h1
2 files changed, 18 insertions, 4 deletions
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<Gtk::Style>& 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;