diff options
-rw-r--r-- | gtk2_ardour/time_axis_view.cc | 11 | ||||
-rw-r--r-- | gtk2_ardour/time_axis_view.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index e3695fb411..9deb7eb3e8 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -27,6 +27,7 @@ #include "pbd/error.h" #include "pbd/convert.h" #include "pbd/stacktrace.h" +#include "pbd/unwind.h" #include <gtkmm2ext/doi.h> #include <gtkmm2ext/utils.h> @@ -102,6 +103,7 @@ TimeAxisView::TimeAxisView (ARDOUR::Session* sess, PublicEditor& ed, TimeAxisVie , _y_position (0) , _editor (ed) , name_entry (0) + , ending_name_edit (false) , control_parent (0) , _order (0) , _effective_height (0) @@ -696,6 +698,15 @@ TimeAxisView::end_name_edit (int response) if (!name_entry) { return; } + + if (ending_name_edit) { + /* already doing this, and focus out or other event has caused + us to re-enter this code. + */ + return; + } + + PBD::Unwinder<bool> uw (ending_name_edit, true); bool edit_next = false; bool edit_prev = false; diff --git a/gtk2_ardour/time_axis_view.h b/gtk2_ardour/time_axis_view.h index baeeb2a92a..1eb193590c 100644 --- a/gtk2_ardour/time_axis_view.h +++ b/gtk2_ardour/time_axis_view.h @@ -259,6 +259,7 @@ class TimeAxisView : public virtual AxisView bool name_entry_focus_out (GdkEventFocus *ev); Gtk::Entry* name_entry; + bool ending_name_edit; void begin_name_edit (); void end_name_edit (int); |