diff --git a/src/ring_client.cpp b/src/ring_client.cpp index 58d637fbdb3be6bccbda626a4974b0fd5af382d4..25e776f4b00d8284a10e2d95cede7a18cdd01bb7 100644 --- a/src/ring_client.cpp +++ b/src/ring_client.cpp @@ -453,7 +453,7 @@ ring_client_shutdown(GApplication *app) RingClient *self = RING_CLIENT(app); RingClientPrivate *priv = RING_CLIENT_GET_PRIVATE(self); - g_debug("quitting"); + gtk_widget_destroy(priv->win); QObject::disconnect(priv->uam_updated); diff --git a/src/ringmainwindow.cpp b/src/ringmainwindow.cpp index 872998157dbeb64e30b9fa9b7196f87a17d4064a..015f82fad93b6924d69fd25dbb20906400c46db9 100644 --- a/src/ringmainwindow.cpp +++ b/src/ringmainwindow.cpp @@ -964,7 +964,9 @@ nm_client_cb(G_GNUC_UNUSED GObject *source_object, GAsyncResult *result, RingMa void CppImpl::init() { - lrc_->getAVModel().deactivateOldVideoModels(); + try { + lrc_->getAVModel().deactivateOldVideoModels(); + } catch (...) {} widgets->cancellable = g_cancellable_new(); #if USE_LIBNM // monitor the network using libnm to notify the daemon about connectivity changes @@ -2215,21 +2217,21 @@ ring_main_window_dispose(GObject *object) auto* self = RING_MAIN_WINDOW(object); auto* priv = RING_MAIN_WINDOW_GET_PRIVATE(self); - delete priv->cpp; - priv->cpp = nullptr; - delete priv->notifier; - priv->notifier = nullptr; + if (priv->cpp) { + delete priv->cpp; + priv->cpp = nullptr; + } // cancel any pending cancellable operations - g_cancellable_cancel(priv->cancellable); - g_object_unref(priv->cancellable); + if (priv->cancellable) { + g_cancellable_cancel(priv->cancellable); + g_object_unref(priv->cancellable); + } #if USE_LIBNM // clear NetworkManager client if it was used g_clear_object(&priv->nm_client); #endif - G_OBJECT_CLASS(ring_main_window_parent_class)->dispose(object); - if (priv->general_settings_view) { g_signal_handler_disconnect(priv->general_settings_view, priv->update_download_folder); priv->update_download_folder = 0; @@ -2244,6 +2246,7 @@ ring_main_window_dispose(GObject *object) g_signal_handler_disconnect(priv->notifier, priv->notif_decline_call); priv->notif_decline_call = 0; } + gtk_widget_destroy(priv->notifier); } static void