diff options
-rw-r--r-- | gtk2_ardour/ardour_ui.h | 1 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui_ed.cc | 16 |
2 files changed, 16 insertions, 1 deletions
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 8a1f41c7a5..8ef3071e4f 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -862,6 +862,7 @@ private: bool audio_button_press (GdkEventButton* ev); bool format_button_press (GdkEventButton* ev); bool timecode_button_press (GdkEventButton* ev); + bool xrun_button_press (GdkEventButton* ev); bool xrun_button_release (GdkEventButton* ev); std::string _announce_string; diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index d1012d6a5e..d5c0e73da0 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -789,6 +789,7 @@ ARDOUR_UI::build_menu_bar () ev->signal_button_press_event().connect (sigc::mem_fun (_status_bar_visibility, &VisibilityGroup::button_press_event)); + ev_dsp->signal_button_press_event().connect (sigc::mem_fun (*this, &ARDOUR_UI::xrun_button_press)); ev_dsp->signal_button_release_event().connect (sigc::mem_fun (*this, &ARDOUR_UI::xrun_button_release)); ev_path->signal_button_press_event().connect (sigc::mem_fun (*this, &ARDOUR_UI::path_button_press)); ev_audio->signal_button_press_event().connect (sigc::mem_fun (*this, &ARDOUR_UI::audio_button_press)); @@ -955,9 +956,22 @@ ARDOUR_UI::focus_on_clock () } bool +ARDOUR_UI::xrun_button_press (GdkEventButton* ev) +{ + if (ev->button != 1 || ev->type != GDK_2BUTTON_PRESS) { + return false; + } + if (_session) { + _session->reset_xrun_count (); + update_cpu_load (); + } + return true; +} + +bool ARDOUR_UI::xrun_button_release (GdkEventButton* ev) { - if (ev->button != 1 || !(Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier) || ev->type == GDK_2BUTTON_PRESS)) { + if (ev->button != 1 || !Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) { return false; } |