summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-06-12 14:53:55 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-06-12 14:54:01 -0400
commitd42f0754084d7c88e49b40ae05eaf70639adcac4 (patch)
treea97517c87a708165f8b0593bfe091f30bd5d2623
parent0852d05643fcedd5eaeb0217c4afa9c95218ef17 (diff)
stop AddRouteDialog from being modal and from using a recursive run loop
-rw-r--r--gtk2_ardour/add_route_dialog.cc1
-rw-r--r--gtk2_ardour/ardour_ui.cc13
-rw-r--r--gtk2_ardour/ardour_ui.h1
-rw-r--r--gtk2_ardour/route_group_menu.h1
4 files changed, 13 insertions, 3 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc
index 5619e97b8d..b01faaf05f 100644
--- a/gtk2_ardour/add_route_dialog.cc
+++ b/gtk2_ardour/add_route_dialog.cc
@@ -63,7 +63,6 @@ AddRouteDialog::AddRouteDialog ()
, instrument_label (_("Instrument:"))
{
set_name ("AddRouteDialog");
- set_modal (true);
set_skip_taskbar_hint (true);
set_resizable (false);
set_position (WIN_POS_MOUSE);
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 91c00065c6..a348f7c9f4 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -4005,7 +4005,9 @@ ARDOUR_UI::start_duplicate_routes ()
void
ARDOUR_UI::add_route ()
{
- int count;
+ if (!add_route_dialog.get (false)) {
+ add_route_dialog->signal_response().connect (sigc::mem_fun (*this, &ARDOUR_UI::add_route_dialog_finished));
+ }
if (!_session) {
return;
@@ -4016,7 +4018,14 @@ ARDOUR_UI::add_route ()
return;
}
- ResponseType r = (ResponseType) add_route_dialog->run ();
+ add_route_dialog->set_position (WIN_POS_MOUSE);
+ add_route_dialog->present();
+}
+
+void
+ARDOUR_UI::add_route_dialog_finished (int r)
+{
+ int count;
add_route_dialog->hide();
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index 9e780aedcc..de2528d865 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -261,6 +261,7 @@ public:
void synchronize_sync_source_and_video_pullup ();
void add_route ();
+ void add_route_dialog_finished (int);
void add_routes_part_two ();
void add_routes_thread ();
diff --git a/gtk2_ardour/route_group_menu.h b/gtk2_ardour/route_group_menu.h
index 51f222af2f..334a3b504e 100644
--- a/gtk2_ardour/route_group_menu.h
+++ b/gtk2_ardour/route_group_menu.h
@@ -40,6 +40,7 @@ public:
void new_group ();
void set_group (ARDOUR::RouteGroup *);
void new_group_dialog_finished (int, RouteGroupDialog*);
+
Gtk::Menu* _menu;
PBD::PropertyList* _default_properties;