summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/plugin_ui.cc24
-rw-r--r--gtk2_ardour/plugin_ui.h1
2 files changed, 17 insertions, 8 deletions
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;