Keep Script-Dialog on top of Script-Manager Window

This commit is contained in:
Robin Gareus 2023-06-10 21:37:09 +02:00
parent 16030f63a1
commit ac2ed95677
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
6 changed files with 10 additions and 10 deletions

View File

@ -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;
}

View File

@ -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

View File

@ -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();

View File

@ -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);

View File

@ -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 ("<b>Type:</b>", Gtk::ALIGN_END, Gtk::ALIGN_CENTER)
, _type ("", Gtk::ALIGN_START, Gtk::ALIGN_CENTER)
, _author_label ("<b>Author:</b>", Gtk::ALIGN_END, Gtk::ALIGN_CENTER)

View File

@ -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: