diff --git a/gtk2_ardour/add_tracks_dialog.cc b/gtk2_ardour/add_tracks_dialog.cc index 78eaa45a44..c90f220cf8 100644 --- a/gtk2_ardour/add_tracks_dialog.cc +++ b/gtk2_ardour/add_tracks_dialog.cc @@ -140,3 +140,22 @@ AddTracksDialog::setup () _tracks_format_dropdown.set_text(TrackFormat::FormatMono); } +bool +AddTracksDialog::on_key_press_event (GdkEventKey* ev) +{ + switch (ev->keyval) + { + case GDK_Return: + hide(); + response (Gtk::RESPONSE_YES); + return true; + case GDK_Escape: + hide(); + response (Gtk::RESPONSE_CANCEL); + return true; + } + + Gtk::Widget::on_key_press_event(ev); + + return true; // do not propagate event +} diff --git a/gtk2_ardour/add_tracks_dialog.h b/gtk2_ardour/add_tracks_dialog.h index d810dde864..bf2b986caf 100644 --- a/gtk2_ardour/add_tracks_dialog.h +++ b/gtk2_ardour/add_tracks_dialog.h @@ -25,6 +25,8 @@ public: void setup(); int count(); ARDOUR::ChanCount input_channels (); + + bool on_key_press_event (GdkEventKey* ev); private: WavesButton& _decrement_button;