X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_window.cc;h=f6ced5fb492c7c7067fa0c6be4c97c9697a13a3f;hb=815ffcd567a65c259b31b41e03c56cf2fc8ad1b6;hp=c15ca78c6baf8f77018d67fc6ad7a187bdd37500;hpb=c94d352f56270b6c93c66bcc3dc83cd49d5efccc;p=ardour.git diff --git a/gtk2_ardour/ardour_window.cc b/gtk2_ardour/ardour_window.cc index c15ca78c6b..f6ced5fb49 100644 --- a/gtk2_ardour/ardour_window.cc +++ b/gtk2_ardour/ardour_window.cc @@ -58,25 +58,21 @@ ArdourWindow::~ArdourWindow () bool ArdourWindow::on_key_press_event (GdkEventKey* ev) { - if (get_modal()) { - return Gtk::Window::on_key_press_event (ev); - } + bool handled = Gtk::Window::on_key_press_event (ev); - if (!relay_key_press (ev, this)) { - return Gtk::Window::on_key_press_event (ev); + if (!handled) { + if (!get_modal()) { + handled = relay_key_press (ev, this); + } } - return true; + + return handled; } bool ArdourWindow::on_focus_in_event (GdkEventFocus *ev) { - if (Keyboard::some_magic_widget_has_focus()) { - Keyboard::magic_widget_drop_focus (); - } - Keyboard::the_keyboard().focus_in_window (ev, this); - Keyboard::magic_widget_grab_focus (); return Window::on_focus_in_event (ev); } @@ -84,7 +80,6 @@ bool ArdourWindow::on_focus_out_event (GdkEventFocus *ev) { if (!get_modal()) { - Keyboard::magic_widget_drop_focus (); Keyboard::the_keyboard().focus_out_window (ev, this); } return Window::on_focus_out_event (ev); @@ -93,16 +88,6 @@ ArdourWindow::on_focus_out_event (GdkEventFocus *ev) void ArdourWindow::on_unmap () { - if (Keyboard::some_magic_widget_has_focus()) { - Gtk::Widget* widget = get_focus(); - if (widget) { - Gtk::Window* win = static_cast(get_focus()->get_toplevel()); - if (win == Keyboard::get_current_window()) { - Keyboard::magic_widget_drop_focus (); - } - } - } - Keyboard::the_keyboard().leave_window (0, this); Window::on_unmap (); }