From 7ef502759e5f4cbcf0afa8ce8623ec386f419f90 Mon Sep 17 00:00:00 2001 From: Přemysl Eric Janouch Date: Sun, 4 Sep 2022 12:03:26 +0200 Subject: sdgui: clean up DnD --- src/sdgui.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/sdgui.c b/src/sdgui.c index 72fdaac..81d17db 100644 --- a/src/sdgui.c +++ b/src/sdgui.c @@ -296,14 +296,10 @@ show_error_dialog (GError *error) } static gboolean -reload_dictionaries (GPtrArray *new_dictionaries) +reload_dictionaries (GPtrArray *new_dictionaries, GError **error) { - GError *error = NULL; - if (!load_dictionaries (new_dictionaries, &error)) - { - show_error_dialog (error); + if (!load_dictionaries (new_dictionaries, error)) return FALSE; - } while (gtk_notebook_get_n_pages (GTK_NOTEBOOK (g.notebook))) gtk_notebook_remove_page (GTK_NOTEBOOK (g.notebook), -1); @@ -347,8 +343,14 @@ on_open (G_GNUC_UNUSED GtkMenuItem *item, G_GNUC_UNUSED gpointer data) } gtk_widget_destroy (dialog); - if (!new_dictionaries->len || !reload_dictionaries (new_dictionaries)) + + GError *error = NULL; + if (!new_dictionaries->len + || !reload_dictionaries (new_dictionaries, &error)) g_ptr_array_free (new_dictionaries, TRUE); + + if (error) + show_error_dialog (error); } static void @@ -371,13 +373,14 @@ on_drag_data_received (G_GNUC_UNUSED GtkWidget *widget, GdkDragContext *context, } g_strfreev (dropped_uris); - if (error) - show_error_dialog (error); - else if (new_dictionaries->len && reload_dictionaries (new_dictionaries)) - return; + if (!new_dictionaries->len + || !reload_dictionaries (new_dictionaries, &error)) + g_ptr_array_free (new_dictionaries, TRUE); - g_ptr_array_free (new_dictionaries, TRUE); gtk_drag_finish (context, error == NULL, FALSE, time); + + if (error) + show_error_dialog (error); } static void -- cgit v1.2.3-70-g09d2