X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_dialog.cc;h=7c78677d3ebde3d341d462c15388268cb7f612ab;hb=af5b9f92a52f08d154ad84c60c61823cb45b62db;hp=43fdf85c9469b0a713ed00ea069b863d76c2c4e1;hpb=1c299d5a5c493986ca4a19bd55a69281dabada86;p=ardour.git diff --git a/gtk2_ardour/ardour_dialog.cc b/gtk2_ardour/ardour_dialog.cc index 43fdf85c94..7c78677d3e 100644 --- a/gtk2_ardour/ardour_dialog.cc +++ b/gtk2_ardour/ardour_dialog.cc @@ -18,6 +18,7 @@ */ #include +#include #include @@ -25,6 +26,14 @@ #include "keyboard.h" #include "ardour_ui.h" #include "splash.h" +#include "public_editor.h" +#include "utils.h" + +using namespace std; +using namespace sigc; +using namespace Gtk; + +sigc::signal ArdourDialog::CloseAllDialogs; ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator) : Dialog (title, modal, use_seperator) @@ -60,6 +69,7 @@ ArdourDialog::on_leave_notify_event (GdkEventCrossing *ev) void ArdourDialog::on_unmap () { + Keyboard::the_keyboard().leave_window (0, this); Dialog::on_unmap (); } @@ -77,9 +87,17 @@ ArdourDialog::on_show () Dialog::on_show (); } -void ArdourDialog::init () +void +ArdourDialog::init () { session = 0; set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG); set_border_width (10); + CloseAllDialogs.connect (bind (mem_fun (*this, &ArdourDialog::response), RESPONSE_CANCEL)); +} + +bool +ArdourDialog::on_key_press_event (GdkEventKey* key) +{ + return Gtk::Dialog::on_key_press_event (key); }