summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui_dependents.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/ardour_ui_dependents.cc')
-rw-r--r--gtk2_ardour/ardour_ui_dependents.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc
index 6c0083291b..c39a44c451 100644
--- a/gtk2_ardour/ardour_ui_dependents.cc
+++ b/gtk2_ardour/ardour_ui_dependents.cc
@@ -304,6 +304,8 @@ ARDOUR_UI::setup_windows ()
main_vpacker.pack_start (status_bar_hpacker, false, false);
#endif
+ LuaInstance::instance()->ActionChanged.connect (sigc::mem_fun (*this, &ARDOUR_UI::update_action_script_btn));
+
for (int i = 0; i < 9; ++i) {
std::string const a = string_compose (X_("script-action-%1"), i + 1);
Glib::RefPtr<Action> act = ActionManager::get_action(X_("Editor"), a.c_str());
@@ -411,3 +413,14 @@ ARDOUR_UI::bind_lua_action_script (GdkEventButton*ev, int i)
li->interactive_add (LuaScriptInfo::EditorAction, i);
return true;
}
+
+void
+ARDOUR_UI::update_action_script_btn (int i, const std::string&)
+{
+ if (LuaInstance::instance()->lua_action_has_icon (i)) {
+ uintptr_t ii = i;
+ action_script_call_btn[i].set_icon (&LuaInstance::render_action_icon, (void*)ii);
+ } else {
+ action_script_call_btn[i].set_icon (0, 0);
+ }
+}