summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-05 12:30:26 +0200
committerRobin Gareus <robin@gareus.org>2013-07-10 15:27:09 +0200
commitaf191fddcaabb060f67f44cc8cad0f2c3873e9fe (patch)
tree322fdf422502061f86b7d50b8d588a3dffdef625 /gtk2_ardour
parentab1395440404282d83df963e3894011e492fadf8 (diff)
limit width of meterbridge window -> align right metrics
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/meterbridge.cc12
-rw-r--r--gtk2_ardour/meterbridge.h2
2 files changed, 13 insertions, 1 deletions
diff --git a/gtk2_ardour/meterbridge.cc b/gtk2_ardour/meterbridge.cc
index 930c40b15a..9676b63ba7 100644
--- a/gtk2_ardour/meterbridge.cc
+++ b/gtk2_ardour/meterbridge.cc
@@ -120,6 +120,7 @@ Meterbridge::Meterbridge ()
, _show_busses (false)
, metrics_left (2)
, metrics_right (3)
+ , cur_max_width (-1)
{
set_name ("Meter Bridge");
@@ -134,7 +135,7 @@ Meterbridge::Meterbridge ()
Gdk::Geometry geom;
geom.max_width = 1<<16;
- geom.max_height = 1024 + 148 + 16 + 12 ; // see FastMeter::max_pattern_metric_size + meter-strip widgets
+ geom.max_height = max_height;
set_geometry_hints(*((Gtk::Window*) this), geom, Gdk::HINT_MAX_SIZE);
set_keep_above (true);
@@ -293,6 +294,15 @@ void
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();
+ geom.max_height = max_height;
+
+ if (cur_max_width != geom.max_width) {
+ cur_max_width = geom.max_width;
+ set_geometry_hints(*((Gtk::Window*) this), geom, Gdk::HINT_MAX_SIZE);
+ }
}
void
diff --git a/gtk2_ardour/meterbridge.h b/gtk2_ardour/meterbridge.h
index e85e82af34..a44b7f552d 100644
--- a/gtk2_ardour/meterbridge.h
+++ b/gtk2_ardour/meterbridge.h
@@ -94,6 +94,8 @@ class Meterbridge :
static const int32_t default_width = 600;
static const int32_t default_height = 400;
+ static const int max_height = 1200; // == 1024 + 148 + 16 + 12 see meter_strip.cc
+ int cur_max_width;
void update_title ();