summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/redirect_box.cc32
1 files changed, 25 insertions, 7 deletions
diff --git a/gtk2_ardour/redirect_box.cc b/gtk2_ardour/redirect_box.cc
index a120c271d1..a9baa02f9c 100644
--- a/gtk2_ardour/redirect_box.cc
+++ b/gtk2_ardour/redirect_box.cc
@@ -1066,7 +1066,12 @@ RedirectBox::edit_redirect (boost::shared_ptr<Redirect> redirect)
send_ui = reinterpret_cast<SendUIWindow *> (send->get_gui());
}
- send_ui->present ();
+ if (send_ui->is_visible()) {
+ send_ui->get_window()->raise ();
+ } else {
+ send_ui->show_all ();
+ send_ui->present ();
+ }
} else {
@@ -1105,9 +1110,13 @@ RedirectBox::edit_redirect (boost::shared_ptr<Redirect> redirect)
} else {
plugin_ui = reinterpret_cast<PluginUIWindow *> (plugin_insert->get_gui());
}
-
- plugin_ui->present ();
-
+
+ if (plugin_ui->is_visible()) {
+ plugin_ui->get_window()->raise ();
+ } else {
+ plugin_ui->show_all ();
+ plugin_ui->present ();
+ }
#ifdef HAVE_AUDIOUNIT
} else if (type == ARDOUR::AudioUnit) {
AUPluginUI* plugin_ui;
@@ -1117,7 +1126,12 @@ RedirectBox::edit_redirect (boost::shared_ptr<Redirect> redirect)
plugin_ui = reinterpret_cast<AUPluginUI*> (plugin_insert->get_gui());
}
- plugin_ui->present ();
+ if (plugin_ui->is_visible()) {
+ plugin_ui->get_window()->raise ();
+ } else {
+ plugin_ui->show_all ();
+ plugin_ui->present ();
+ }
#endif
} else {
warning << "Unsupported plugin sent to RedirectBox::edit_redirect()" << endmsg;
@@ -1140,8 +1154,12 @@ RedirectBox::edit_redirect (boost::shared_ptr<Redirect> redirect)
} else {
io_selector = reinterpret_cast<PortInsertWindow *> (port_insert->get_gui());
}
-
- io_selector->present ();
+
+ if (io_selector->is_visible()) {
+ io_selector->get_window()->raise ();
+ } else {
+ io_selector->present ();
+ }
}
}
}