diff options
-rw-r--r-- | gtk2_ardour/time_axis_view.cc | 12 | ||||
-rw-r--r-- | gtk2_ardour/time_axis_view.h | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 4ad476b734..27db10c99b 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -104,6 +104,7 @@ TimeAxisView::TimeAxisView (ARDOUR::Session* sess, PublicEditor& ed, TimeAxisVie , _editor (ed) , name_entry (0) , ending_name_edit (false) + , by_popup_menu (false) , control_parent (0) , _order (0) , _effective_height (0) @@ -652,11 +653,21 @@ TimeAxisView::name_entry_key_release (GdkEventKey* ev) bool TimeAxisView::name_entry_focus_out (GdkEventFocus*) { + if (by_popup_menu) { + by_popup_menu = false; + return false; + } end_name_edit (RESPONSE_OK); return false; } void +TimeAxisView::name_entry_populate_popup (Gtk::Menu *) +{ + by_popup_menu = true; +} + +void TimeAxisView::begin_name_edit () { if (name_entry) { @@ -675,6 +686,7 @@ TimeAxisView::begin_name_edit () name_entry->signal_focus_out_event().connect (sigc::mem_fun (*this, &TimeAxisView::name_entry_focus_out)); name_entry->set_text (name_label.get_text()); name_entry->signal_activate().connect (sigc::bind (sigc::mem_fun (*this, &TimeAxisView::end_name_edit), RESPONSE_OK)); + name_entry->signal_populate_popup().connect (sigc::mem_fun (*this, &TimeAxisView::name_entry_populate_popup)); if (name_label.is_ancestor (name_hbox)) { name_hbox.remove (name_label); diff --git a/gtk2_ardour/time_axis_view.h b/gtk2_ardour/time_axis_view.h index 1eb193590c..4be23803ef 100644 --- a/gtk2_ardour/time_axis_view.h +++ b/gtk2_ardour/time_axis_view.h @@ -257,9 +257,11 @@ class TimeAxisView : public virtual AxisView bool name_entry_key_release (GdkEventKey *ev); bool name_entry_key_press (GdkEventKey *ev); bool name_entry_focus_out (GdkEventFocus *ev); + void name_entry_populate_popup (Gtk::Menu *); Gtk::Entry* name_entry; bool ending_name_edit; + bool by_popup_menu; void begin_name_edit (); void end_name_edit (int); |