Allow to toggle RTA Window using mixer-strip button

This commit is contained in:
Robin Gareus
2025-10-10 22:06:07 +02:00
parent a196069a24
commit 1f3ff4f5ed
3 changed files with 24 additions and 5 deletions

View File

@@ -289,7 +289,7 @@ MixerStrip::init ()
set_tooltip (&group_button, _("Mix group"));
group_button.set_name ("mixer strip button");
set_tooltip (rta_button, _("Realtime Analyzer"));
set_tooltip (rta_button, _("Realtime Analyzer\nLeft-click to toggle track analysis\nRight-click to toggle RTA window visibility"));
rta_button->set_name ("mixer strip button");
Gtk::Requisition mpb_size = gpm.meter_point_button.size_request();

View File

@@ -262,7 +262,8 @@ RouteUI::init ()
rec_enable_button->signal_button_press_event().connect (sigc::mem_fun(*this, &RouteUI::rec_enable_press), false);
rec_enable_button->signal_button_release_event().connect (sigc::mem_fun(*this, &RouteUI::rec_enable_release), false);
rta_button->signal_clicked.connect (sigc::mem_fun(*this, &RouteUI::rta_clicked));
rta_button->signal_button_press_event().connect (sigc::mem_fun(*this, &RouteUI::rta_press), false);
rta_button->signal_button_release_event().connect (sigc::mem_fun(*this, &RouteUI::rta_release), false);
show_sends_button->signal_button_press_event().connect (sigc::mem_fun(*this, &RouteUI::show_sends_press), false);
show_sends_button->signal_button_release_event().connect (sigc::mem_fun(*this, &RouteUI::show_sends_release), false);
@@ -1213,9 +1214,25 @@ RouteUI::send_blink (bool onoff)
}
}
void
RouteUI::rta_clicked ()
bool
RouteUI::rta_press (GdkEventButton*)
{
return false;
}
bool
RouteUI::rta_release (GdkEventButton* ev)
{
if (ev->button == 3) {
Glib::RefPtr<ToggleAction> tact = ActionManager::get_toggle_action ("Window", "toggle-rtawindow");
tact->set_active (!tact->get_active ());
return true;
}
if (ev->button != 1) {
return false;
}
bool attached = RTAManager::instance ()->attached (_route);
if (attached) {
RTAManager::instance ()->remove (_route);
@@ -1223,6 +1240,7 @@ RouteUI::rta_clicked ()
RTAManager::instance ()->attach (_route);
ARDOUR_UI::instance()->show_realtime_analyzer ();
}
return true;
}
void

View File

@@ -147,7 +147,8 @@ public:
bool show_sends_release (GdkEventButton*);
bool solo_isolate_button_release (GdkEventButton*);
bool solo_safe_button_release (GdkEventButton*);
void rta_clicked ();
bool rta_press (GdkEventButton*);
bool rta_release (GdkEventButton*);
bool monitor_release (GdkEventButton*, ARDOUR::MonitorChoice);
bool monitor_input_press (GdkEventButton*);