From c94d352f56270b6c93c66bcc3dc83cd49d5efccc Mon Sep 17 00:00:00 2001 From: nick_m Date: Thu, 2 Apr 2015 03:32:21 +1100 Subject: [PATCH] Potential fix for AU window close crash. --- gtk2_ardour/ardour_dialog.cc | 9 ++++++--- gtk2_ardour/ardour_window.cc | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) 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 (); + } } }