diff options
author | Robin Gareus <robin@gareus.org> | 2013-07-05 12:30:26 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-07-10 15:27:09 +0200 |
commit | af191fddcaabb060f67f44cc8cad0f2c3873e9fe (patch) | |
tree | 322fdf422502061f86b7d50b8d588a3dffdef625 | |
parent | ab1395440404282d83df963e3894011e492fadf8 (diff) |
limit width of meterbridge window -> align right metrics
-rw-r--r-- | gtk2_ardour/meterbridge.cc | 12 | ||||
-rw-r--r-- | gtk2_ardour/meterbridge.h | 2 |
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 (); |