diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc
index e8c94d1256..b9f77c3b42 100644
--- a/gtk2_ardour/ardour_ui_dependents.cc
+++ b/gtk2_ardour/ardour_ui_dependents.cc
@@ -442,7 +442,7 @@ ARDOUR_UI::bind_lua_action_script (GdkEventButton*ev, int i)
if (Gtkmm2ext::Keyboard::modifier_state_equals (ev->state, Gtkmm2ext::Keyboard::TertiaryModifier)) {
li->remove_lua_action (i);
} else {
- li->interactive_add (LuaScriptInfo::EditorAction, i);
+ li->interactive_add (*editor->current_toplevel (), LuaScriptInfo::EditorAction, i);
}
return true;
}
diff --git a/gtk2_ardour/lua_script_manager.cc b/gtk2_ardour/lua_script_manager.cc
index f28583e575..be64fdb732 100644
--- a/gtk2_ardour/lua_script_manager.cc
+++ b/gtk2_ardour/lua_script_manager.cc
@@ -256,7 +256,7 @@ LuaScriptManager::set_action_btn_clicked ()
TreeModel::Row row = *(_a_view.get_selection()->get_selected());
assert (row);
LuaInstance *li = LuaInstance::instance();
- li->interactive_add (LuaScriptInfo::EditorAction, row[_a_model.id]);
+ li->interactive_add (*this, LuaScriptInfo::EditorAction, row[_a_model.id]);
}
void
@@ -347,7 +347,7 @@ void
LuaScriptManager::add_callback_btn_clicked ()
{
LuaInstance *li = LuaInstance::instance();
- li->interactive_add (LuaScriptInfo::EditorHook, -1);
+ li->interactive_add (*this, LuaScriptInfo::EditorHook, -1);
}
void
@@ -431,7 +431,7 @@ LuaScriptManager::add_sess_btn_clicked ()
return;
}
LuaInstance *li = LuaInstance::instance();
- li->interactive_add (LuaScriptInfo::Session, -1);
+ li->interactive_add (*this, LuaScriptInfo::Session, -1);
}
void
diff --git a/gtk2_ardour/luainstance.cc b/gtk2_ardour/luainstance.cc
index 5f414eb93d..d54e551ed9 100644
--- a/gtk2_ardour/luainstance.cc
+++ b/gtk2_ardour/luainstance.cc
@@ -1532,7 +1532,7 @@ LuaInstance::pre_seed_scripts ()
}
bool
-LuaInstance::interactive_add (LuaScriptInfo::ScriptType type, int id)
+LuaInstance::interactive_add (Gtk::Window& parent, LuaScriptInfo::ScriptType type, int id)
{
std::string title;
std::string param_function = "action_params";
@@ -1560,7 +1560,7 @@ LuaInstance::interactive_add (LuaScriptInfo::ScriptType type, int id)
}
LuaScriptInfoPtr spi;
- ScriptSelector ss (title, type);
+ ScriptSelector ss (parent, title, type);
switch (ss.run ()) {
case Gtk::RESPONSE_ACCEPT:
spi = ss.script();
diff --git a/gtk2_ardour/luainstance.h b/gtk2_ardour/luainstance.h
index d77b0e2563..43e5bb86b3 100644
--- a/gtk2_ardour/luainstance.h
+++ b/gtk2_ardour/luainstance.h
@@ -124,7 +124,7 @@ public:
int load_state ();
int save_state ();
- bool interactive_add (ARDOUR::LuaScriptInfo::ScriptType, int);
+ bool interactive_add (Gtk::Window&, ARDOUR::LuaScriptInfo::ScriptType, int);
/* actions */
void call_action (const int);
diff --git a/gtk2_ardour/script_selector.cc b/gtk2_ardour/script_selector.cc
index 18d06e9081..c915010aa2 100644
--- a/gtk2_ardour/script_selector.cc
+++ b/gtk2_ardour/script_selector.cc
@@ -29,8 +29,8 @@ using namespace std;
using namespace Gtk;
using namespace ARDOUR;
-ScriptSelector::ScriptSelector (std::string title, LuaScriptInfo::ScriptType type)
- : ArdourDialog (title)
+ScriptSelector::ScriptSelector (Gtk::Window& parent, std::string title, LuaScriptInfo::ScriptType type)
+ : ArdourDialog (parent, title, true)
, _type_label ("Type:", Gtk::ALIGN_END, Gtk::ALIGN_CENTER)
, _type ("", Gtk::ALIGN_START, Gtk::ALIGN_CENTER)
, _author_label ("Author:", Gtk::ALIGN_END, Gtk::ALIGN_CENTER)
diff --git a/gtk2_ardour/script_selector.h b/gtk2_ardour/script_selector.h
index 83b1867d7b..f491b7a2d8 100644
--- a/gtk2_ardour/script_selector.h
+++ b/gtk2_ardour/script_selector.h
@@ -27,7 +27,7 @@
class ScriptSelector : public ArdourDialog
{
public:
- ScriptSelector (std::string title, ARDOUR::LuaScriptInfo::ScriptType t);
+ ScriptSelector (Gtk::Window& parent, std::string title, ARDOUR::LuaScriptInfo::ScriptType t);
ARDOUR::LuaScriptInfoPtr script() const { return _script; }
private: