summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-24 01:39:16 +0200
committerRobin Gareus <robin@gareus.org>2013-07-24 01:39:16 +0200
commit8deccea615aae9a0be0800d7858ccedcea4133e5 (patch)
tree0ab6ced39f64c894e1a24ad839b5883400e17c62 /gtk2_ardour
parent6706f45b95d39028f643606705aeb3f82686b28c (diff)
limit width and resize meterbride window
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/meter_strip.cc4
-rw-r--r--gtk2_ardour/meter_strip.h1
-rw-r--r--gtk2_ardour/meterbridge.cc4
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<void,MeterStrip*> MeterStrip::CatchDeletion;
PBD::Signal0<void> MeterStrip::MetricChanged;
+PBD::Signal0<void> 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<void,MeterStrip*> CatchDeletion;
static PBD::Signal0<void> MetricChanged;
+ static PBD::Signal0<void> 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) {