diff --git a/gtk2_ardour/ardour_dialog.cc b/gtk2_ardour/ardour_dialog.cc index 423cab0a30..12d595b0b0 100644 --- a/gtk2_ardour/ardour_dialog.cc +++ b/gtk2_ardour/ardour_dialog.cc @@ -89,9 +89,12 @@ void ArdourDialog::on_unmap () { if (Keyboard::some_magic_widget_has_focus()) { - Gtk::Window* win = static_cast(get_focus()->get_toplevel()); - if (win == Keyboard::get_current_window()) { - Keyboard::magic_widget_drop_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 (); + } } } diff --git a/gtk2_ardour/ardour_window.cc b/gtk2_ardour/ardour_window.cc index fc3ec84b0e..c15ca78c6b 100644 --- a/gtk2_ardour/ardour_window.cc +++ b/gtk2_ardour/ardour_window.cc @@ -94,9 +94,12 @@ void ArdourWindow::on_unmap () { if (Keyboard::some_magic_widget_has_focus()) { - Gtk::Window* win = static_cast(get_focus()->get_toplevel()); - if (win == Keyboard::get_current_window()) { - Keyboard::magic_widget_drop_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 (); + } } }