Set active text in buffer_size combo in EngineControl dialog
[ardour.git] / gtk2_ardour / ardour_window.cc
index c15ca78c6baf8f77018d67fc6ad7a187bdd37500..f6ced5fb492c7c7067fa0c6be4c97c9697a13a3f 100644 (file)
@@ -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<Gtk::Window*>(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 ();
 }