diff options
| author | Přemysl Eric Janouch <p@janouch.name> | 2022-09-04 12:03:26 +0200 | 
|---|---|---|
| committer | Přemysl Eric Janouch <p@janouch.name> | 2022-09-04 12:03:26 +0200 | 
| commit | 7ef502759e5f4cbcf0afa8ce8623ec386f419f90 (patch) | |
| tree | f6464284d5e54caf704a77aca9e88b62a7e4467a /src | |
| parent | ded899933c50a976d10144f526ffd6a5e58e6ced (diff) | |
| download | tdv-7ef502759e5f4cbcf0afa8ce8623ec386f419f90.tar.gz tdv-7ef502759e5f4cbcf0afa8ce8623ec386f419f90.tar.xz tdv-7ef502759e5f4cbcf0afa8ce8623ec386f419f90.zip | |
sdgui: clean up DnD
Diffstat (limited to 'src')
| -rw-r--r-- | src/sdgui.c | 27 | 
1 files 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 | 
