, _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)
{
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);
}
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);
void
ArdourDialog::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);
Dialog::on_unmap ();
}