From fe1796fd6fbf0e340b14004f4a1cebaa1743ed30 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Thu, 27 Dec 2012 18:49:12 +0000 Subject: [PATCH] allow big block to be shrunk in size as well as expanded (suprisingly complex!) git-svn-id: svn://localhost/ardour2/branches/3.0@13740 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/audio_clock.cc | 21 +++++++++++++++++---- gtk2_ardour/audio_clock.h | 1 + 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& 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;