sdgui: clean up DnD

This commit is contained in:
Přemysl Eric Janouch 2022-09-04 12:03:26 +02:00
parent ded899933c
commit 7ef502759e
Signed by: p
GPG Key ID: A0420B94F92B9493
1 changed files with 15 additions and 12 deletions

View File

@ -296,14 +296,10 @@ show_error_dialog (GError *error)
} }
static gboolean static gboolean
reload_dictionaries (GPtrArray *new_dictionaries) reload_dictionaries (GPtrArray *new_dictionaries, GError **error)
{ {
GError *error = NULL; if (!load_dictionaries (new_dictionaries, error))
if (!load_dictionaries (new_dictionaries, &error))
{
show_error_dialog (error);
return FALSE; return FALSE;
}
while (gtk_notebook_get_n_pages (GTK_NOTEBOOK (g.notebook))) while (gtk_notebook_get_n_pages (GTK_NOTEBOOK (g.notebook)))
gtk_notebook_remove_page (GTK_NOTEBOOK (g.notebook), -1); 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); 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); g_ptr_array_free (new_dictionaries, TRUE);
if (error)
show_error_dialog (error);
} }
static void static void
@ -371,13 +373,14 @@ on_drag_data_received (G_GNUC_UNUSED GtkWidget *widget, GdkDragContext *context,
} }
g_strfreev (dropped_uris); g_strfreev (dropped_uris);
if (!new_dictionaries->len
|| !reload_dictionaries (new_dictionaries, &error))
g_ptr_array_free (new_dictionaries, TRUE);
gtk_drag_finish (context, error == NULL, FALSE, time);
if (error) if (error)
show_error_dialog (error); show_error_dialog (error);
else if (new_dictionaries->len && reload_dictionaries (new_dictionaries))
return;
g_ptr_array_free (new_dictionaries, TRUE);
gtk_drag_finish (context, error == NULL, FALSE, time);
} }
static void static void