From ba86a634e511b096cc80cc92cd394fe64fed62b5 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 14 Apr 2025 23:45:51 +0200 Subject: [PATCH] RTA: add impliciy freeze on mouse-down --- gtk2_ardour/rta_window.cc | 17 +++++++++++++++-- gtk2_ardour/themes/adwaita_dark-ardour.colors | 2 ++ gtk2_ardour/themes/blueberry_milk-ardour.colors | 2 ++ gtk2_ardour/themes/caineville-ardour.colors | 2 ++ gtk2_ardour/themes/captain_light-ardour.colors | 2 ++ gtk2_ardour/themes/clear_gray-ardour.colors | 2 ++ gtk2_ardour/themes/cubasish-ardour.colors | 2 ++ gtk2_ardour/themes/dark-ardour.colors | 2 ++ gtk2_ardour/themes/diehard3-ardour.colors | 2 ++ gtk2_ardour/themes/recbox-ardour.colors | 2 ++ gtk2_ardour/themes/unastudia-ardour.colors | 2 ++ gtk2_ardour/themes/xcolors-ardour.colors | 2 ++ 12 files changed, 37 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/rta_window.cc b/gtk2_ardour/rta_window.cc index 0e2c79ebad..b7af9d3f38 100644 --- a/gtk2_ardour/rta_window.cc +++ b/gtk2_ardour/rta_window.cc @@ -42,7 +42,7 @@ using namespace ARDOUR; RTAWindow::RTAWindow () : ArdourWindow (_("Realtime Perceptual Analyzer")) - , _pause (_("Freeze"), ArdourWidgets::ArdourButton::led_default_elements, true) + , _pause (_("Freeze"), ArdourWidgets::ArdourButton::default_elements, true) , _visible (false) , _margin (20) , _min_dB (-60) @@ -53,6 +53,7 @@ RTAWindow::RTAWindow () , _cursor_y (-1) { _pause.signal_clicked.connect (mem_fun (*this, &RTAWindow::pause_toggled)); + _pause.set_name ("rta freeze button"); _darea.add_events (Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | Gdk::POINTER_MOTION_MASK | Gdk::LEAVE_NOTIFY_MASK); _darea.signal_size_request ().connect (sigc::mem_fun (*this, &RTAWindow::darea_size_request)); @@ -279,9 +280,16 @@ freq_at_x (const int x, const int width) bool RTAWindow::darea_button_press_event (GdkEventButton* ev) { - if (ev->button != 1 || !_hovering_dB || ev->type != GDK_BUTTON_PRESS) { + if (ev->button != 1 || ev->type != GDK_BUTTON_PRESS) { return false; } + if (!_hovering_dB) { + if (!_pause.get_active ()) { + _pause.set_active_state (Gtkmm2ext::ImplicitActive); + pause_toggled (); + } + return true; + } assert (_dragging_dB == DragNone); @@ -323,6 +331,11 @@ RTAWindow::darea_button_release_event (GdkEventButton* ev) return false; } + if (_pause.active_state () == Gtkmm2ext::ImplicitActive) { + _pause.set_active_state (Gtkmm2ext::Off); + pause_toggled (); + } + bool changed = false; if (_dragging_dB != DragNone) { diff --git a/gtk2_ardour/themes/adwaita_dark-ardour.colors b/gtk2_ardour/themes/adwaita_dark-ardour.colors index 3cf0a5143c..dfc7f739b0 100644 --- a/gtk2_ardour/themes/adwaita_dark-ardour.colors +++ b/gtk2_ardour/themes/adwaita_dark-ardour.colors @@ -388,6 +388,8 @@ + + diff --git a/gtk2_ardour/themes/blueberry_milk-ardour.colors b/gtk2_ardour/themes/blueberry_milk-ardour.colors index cd2419483a..118bfc4a17 100644 --- a/gtk2_ardour/themes/blueberry_milk-ardour.colors +++ b/gtk2_ardour/themes/blueberry_milk-ardour.colors @@ -378,6 +378,8 @@ + + diff --git a/gtk2_ardour/themes/caineville-ardour.colors b/gtk2_ardour/themes/caineville-ardour.colors index b867e525da..42d1d369e3 100644 --- a/gtk2_ardour/themes/caineville-ardour.colors +++ b/gtk2_ardour/themes/caineville-ardour.colors @@ -379,6 +379,8 @@ + + diff --git a/gtk2_ardour/themes/captain_light-ardour.colors b/gtk2_ardour/themes/captain_light-ardour.colors index a22c30087c..f0f2816d6b 100644 --- a/gtk2_ardour/themes/captain_light-ardour.colors +++ b/gtk2_ardour/themes/captain_light-ardour.colors @@ -385,6 +385,8 @@ + + diff --git a/gtk2_ardour/themes/clear_gray-ardour.colors b/gtk2_ardour/themes/clear_gray-ardour.colors index 13d1f244f0..b6574e7725 100644 --- a/gtk2_ardour/themes/clear_gray-ardour.colors +++ b/gtk2_ardour/themes/clear_gray-ardour.colors @@ -379,6 +379,8 @@ + + diff --git a/gtk2_ardour/themes/cubasish-ardour.colors b/gtk2_ardour/themes/cubasish-ardour.colors index 6ecac34e65..8728d44d2a 100644 --- a/gtk2_ardour/themes/cubasish-ardour.colors +++ b/gtk2_ardour/themes/cubasish-ardour.colors @@ -379,6 +379,8 @@ + + diff --git a/gtk2_ardour/themes/dark-ardour.colors b/gtk2_ardour/themes/dark-ardour.colors index e195d599da..9c15757d68 100644 --- a/gtk2_ardour/themes/dark-ardour.colors +++ b/gtk2_ardour/themes/dark-ardour.colors @@ -385,6 +385,8 @@ + + diff --git a/gtk2_ardour/themes/diehard3-ardour.colors b/gtk2_ardour/themes/diehard3-ardour.colors index d46c50168e..0c7247bdb3 100644 --- a/gtk2_ardour/themes/diehard3-ardour.colors +++ b/gtk2_ardour/themes/diehard3-ardour.colors @@ -381,6 +381,8 @@ + + diff --git a/gtk2_ardour/themes/recbox-ardour.colors b/gtk2_ardour/themes/recbox-ardour.colors index 80cc5cb5d8..8c7f8c4b43 100644 --- a/gtk2_ardour/themes/recbox-ardour.colors +++ b/gtk2_ardour/themes/recbox-ardour.colors @@ -380,6 +380,8 @@ + + diff --git a/gtk2_ardour/themes/unastudia-ardour.colors b/gtk2_ardour/themes/unastudia-ardour.colors index 29b093c5d3..71d69f1c1b 100644 --- a/gtk2_ardour/themes/unastudia-ardour.colors +++ b/gtk2_ardour/themes/unastudia-ardour.colors @@ -378,6 +378,8 @@ + + diff --git a/gtk2_ardour/themes/xcolors-ardour.colors b/gtk2_ardour/themes/xcolors-ardour.colors index 0bd94b60f5..0e8b2053bf 100644 --- a/gtk2_ardour/themes/xcolors-ardour.colors +++ b/gtk2_ardour/themes/xcolors-ardour.colors @@ -379,6 +379,8 @@ + +