a reverb is a reverb is a reverb
[ardour.git] / gtk2_ardour / ardour_dialog.cc
index 423cab0a30dd466c7ed0c6fc5d7bc00e98b70dc6..89b9914120147b4586ca137ad0d73df5ad17c3b7 100644 (file)
@@ -40,7 +40,7 @@ ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator)
         , _splash_pushed (false)
 {
        init ();
-       set_position (Gtk::WIN_POS_CENTER);
+       set_position (Gtk::WIN_POS_MOUSE);
 }
 
 ArdourDialog::ArdourDialog (Gtk::Window& parent, string title, bool modal, bool use_seperator)
@@ -55,23 +55,19 @@ ArdourDialog::~ArdourDialog ()
 {
         if (_splash_pushed) {
                 Splash* spl = Splash::instance();
-                
+
                 if (spl) {
                         spl->pop_front();
                 }
         }
-       WM::Manager::instance().remove (proxy);
+        Keyboard::the_keyboard().focus_out_window (0, this);
+        WM::Manager::instance().remove (proxy);
 }
 
 bool
 ArdourDialog::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 Dialog::on_focus_in_event (ev);
 }
 
@@ -79,7 +75,6 @@ bool
 ArdourDialog::on_focus_out_event (GdkEventFocus *ev)
 {
        if (!get_modal()) {
-               Keyboard::magic_widget_drop_focus ();
                Keyboard::the_keyboard().focus_out_window (ev, this);
        }
        return Dialog::on_focus_out_event (ev);
@@ -88,13 +83,6 @@ ArdourDialog::on_focus_out_event (GdkEventFocus *ev)
 void
 ArdourDialog::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);
        Dialog::on_unmap ();
 }