From 8deccea615aae9a0be0800d7858ccedcea4133e5 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 24 Jul 2013 01:39:16 +0200 Subject: limit width and resize meterbride window --- gtk2_ardour/meter_strip.cc | 4 +++- gtk2_ardour/meter_strip.h | 1 + gtk2_ardour/meterbridge.cc | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/meter_strip.cc b/gtk2_ardour/meter_strip.cc index 4e4ffe11cf..061c14d468 100644 --- a/gtk2_ardour/meter_strip.cc +++ b/gtk2_ardour/meter_strip.cc @@ -56,6 +56,7 @@ using namespace ArdourMeter; PBD::Signal1 MeterStrip::CatchDeletion; PBD::Signal0 MeterStrip::MetricChanged; +PBD::Signal0 MeterStrip::ConfigurationChanged; MeterStrip::MeterStrip (int metricmode, MeterType mt) : AxisView(0) @@ -366,8 +367,9 @@ MeterStrip::meter_configuration_changed (ChanCount c) _has_midi = true; } - if (old_has_midi != _has_midi) MetricChanged(); on_theme_changed(); + if (old_has_midi != _has_midi) MetricChanged(); + else ConfigurationChanged(); } void diff --git a/gtk2_ardour/meter_strip.h b/gtk2_ardour/meter_strip.h index 4c532df5c7..fd5f65be3c 100644 --- a/gtk2_ardour/meter_strip.h +++ b/gtk2_ardour/meter_strip.h @@ -56,6 +56,7 @@ class MeterStrip : public Gtk::VBox, public RouteUI static PBD::Signal1 CatchDeletion; static PBD::Signal0 MetricChanged; + static PBD::Signal0 ConfigurationChanged; void reset_peak_display (); void reset_route_peak_display (ARDOUR::Route*); diff --git a/gtk2_ardour/meterbridge.cc b/gtk2_ardour/meterbridge.cc index 2b51e9a85f..fe29977b86 100644 --- a/gtk2_ardour/meterbridge.cc +++ b/gtk2_ardour/meterbridge.cc @@ -141,6 +141,7 @@ Meterbridge::Meterbridge () Route::SyncOrderKeys.connect (*this, invalidator (*this), boost::bind (&Meterbridge::sync_order_keys, this, _1), gui_context()); MeterStrip::CatchDeletion.connect (*this, invalidator (*this), boost::bind (&Meterbridge::remove_strip, this, _1), gui_context()); MeterStrip::MetricChanged.connect (*this, invalidator (*this), boost::bind(&Meterbridge::resync_order, this), gui_context()); + MeterStrip::ConfigurationChanged.connect (*this, invalidator (*this), boost::bind(&Meterbridge::queue_resize, this), gui_context()); /* work around ScrolledWindowViewport alignment mess Part one */ Gtk::HBox * yspc = manage (new Gtk::HBox()); @@ -336,7 +337,8 @@ Meterbridge::on_size_request (Gtk::Requisition* r) Gtk::Window::on_size_request(r); Gdk::Geometry geom; - geom.max_width = meterarea.get_width() + metrics_left.get_width() + metrics_right.get_width(); + Gtk::Requisition mr = meterarea.size_request(); + geom.max_width = mr.width + metrics_left.get_width() + metrics_right.get_width(); geom.max_height = max_height; if (cur_max_width != geom.max_width) { -- cgit v1.2.3