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
This commit is contained in:
Paul Davis 2012-12-27 18:49:12 +00:00
parent 5088d3b59b
commit fe1796fd6f
2 changed files with 18 additions and 4 deletions

View File

@ -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 ();
}

View File

@ -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;