more transport button caironizing.
[ardour.git] / gtk2_ardour / ardour_window.cc
index fc3ec84b0e30f765626c3cd297376d0b385207b3..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,13 +88,6 @@ ArdourWindow::on_focus_out_event (GdkEventFocus *ev)
 void
 ArdourWindow::on_unmap ()
 {
-       if (Keyboard::some_magic_widget_has_focus()) {
-               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 ();
 }