From 561cf86919d4b3db45dacb64ae926bc5f738d8e4 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 13 Dec 2019 16:33:12 +0100 Subject: [PATCH] Fix session sensitivity of some toolbar controls --- gtk2_ardour/ardour_ui.cc | 3 +++ gtk2_ardour/ardour_ui_dependents.cc | 3 +++ gtk2_ardour/ardour_ui_dialogs.cc | 2 ++ gtk2_ardour/ardour_ui_ed.cc | 1 + 4 files changed, 9 insertions(+) diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index c12396e900..e556d8e1a3 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -2000,6 +2000,9 @@ ARDOUR_UI::map_transport_state () { if (!_session) { layered_button.set_sensitive (false); + if (UIConfiguration::instance().get_screen_saver_mode () == InhibitWhileRecording) { + inhibit_screensaver (false); + } return; } diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc index 213530e9f5..42c1404733 100644 --- a/gtk2_ardour/ardour_ui_dependents.cc +++ b/gtk2_ardour/ardour_ui_dependents.cc @@ -405,6 +405,9 @@ ARDOUR_UI::setup_windows () bool ARDOUR_UI::bind_lua_action_script (GdkEventButton*ev, int i) { + if (!_session) { + return false; + } LuaInstance *li = LuaInstance::instance(); std::string name; if (ev->button != 3 && !(ev->button == 1 && !li->lua_action_name (i, name))) { diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index 8625b92210..ebac8b2f2c 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -108,6 +108,8 @@ ARDOUR_UI::set_session (Session *s) virtual_keyboard_window->set_session (s); } + map_transport_state (); + if (!_session) { WM::Manager::instance().set_session (s); /* Session option editor cannot exist across change-of-session */ diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index 0ca8a3425f..e6a6dc09c7 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -484,6 +484,7 @@ ARDOUR_UI::install_actions () ActionManager::transport_sensitive_actions.push_back (act); act = ActionManager::register_toggle_action (main_actions, X_("ToggleLatencyCompensation"), _("Disable Latency Compensation"), sigc::mem_fun(*this, &ARDOUR_UI::toggle_latency_switch)); + ActionManager::session_sensitive_actions.push_back (act); act = ActionManager::register_action (main_actions, X_("MonitorMenu"), _("Monitor Section")); /* just the submenu item */ ActionManager::session_sensitive_actions.push_back (act);