From d0f594ffd01de8ba0e0dce1e211c6ee5485615b0 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 16 Jul 2016 00:12:19 +0200 Subject: adjust plugin-UI height when toggling expanders --- gtk2_ardour/plugin_ui.cc | 24 +++++++++++++++++------- gtk2_ardour/plugin_ui.h | 1 - 2 files changed, 17 insertions(+), 8 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index 711b1f555f..1f70537a41 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -710,7 +710,19 @@ PlugUIBase::toggle_description() } if (!description_expander.get_expanded()) { + const int child_height = description_expander.get_child ()->get_height (); + description_expander.remove(); + + Gtk::Window *toplevel = (Gtk::Window*) description_expander.get_ancestor (GTK_TYPE_WINDOW); + + if (toplevel) { + Gtk::Requisition wr; + toplevel->get_size (wr.width, wr.height); + wr.height -= child_height; + toplevel->resize (wr.width, wr.height); + } + } } @@ -725,12 +737,6 @@ PlugUIBase::toggle_plugin_analysis() eqgui = new PluginEqGui (insert); } - Gtk::Window *toplevel = (Gtk::Window*) plugin_analysis_expander.get_ancestor (GTK_TYPE_WINDOW); - - if (toplevel) { - toplevel->get_size (pre_eq_size.width, pre_eq_size.height); - } - plugin_analysis_expander.add (*eqgui); plugin_analysis_expander.show_all (); eqgui->start_listening (); @@ -738,6 +744,7 @@ PlugUIBase::toggle_plugin_analysis() if (!plugin_analysis_expander.get_expanded()) { // Hide & remove from expander + const int child_height = plugin_analysis_expander.get_child ()->get_height (); eqgui->hide (); eqgui->stop_listening (); @@ -746,7 +753,10 @@ PlugUIBase::toggle_plugin_analysis() Gtk::Window *toplevel = (Gtk::Window*) plugin_analysis_expander.get_ancestor (GTK_TYPE_WINDOW); if (toplevel) { - toplevel->resize (pre_eq_size.width, pre_eq_size.height); + Gtk::Requisition wr; + toplevel->get_size (wr.width, wr.height); + wr.height -= child_height; + toplevel->resize (wr.width, wr.height); } } } diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index d07b287e6a..895d8681ab 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -153,7 +153,6 @@ class PlugUIBase : public virtual sigc::trackable, public PBD::ScopedConnectionL ArdourWindow* latency_dialog; PluginEqGui* eqgui; - Gtk::Requisition pre_eq_size; Gtk::Image* focus_out_image; Gtk::Image* focus_in_image; -- cgit v1.2.3