diff options
Diffstat (limited to 'gtk/gtkfiledialog.c')
-rw-r--r-- | gtk/gtkfiledialog.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gtk/gtkfiledialog.c b/gtk/gtkfiledialog.c index 8b9fc21a6a..b267e2d239 100644 --- a/gtk/gtkfiledialog.c +++ b/gtk/gtkfiledialog.c @@ -976,6 +976,9 @@ gtk_file_dialog_open_finish (GtkFileDialog *self, g_return_val_if_fail (g_task_is_valid (result, self), NULL); g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_file_dialog_open, NULL); + /* Destroy the dialog window not to be bound to GTask lifecycle */ + g_task_set_task_data (G_TASK (result), NULL, NULL); + return finish_file_op (self, G_TASK (result), error); } @@ -1050,6 +1053,9 @@ gtk_file_dialog_select_folder_finish (GtkFileDialog *self, g_return_val_if_fail (g_task_is_valid (result, self), NULL); g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_file_dialog_select_folder, NULL); + /* Destroy the dialog window not to be bound to GTask lifecycle */ + g_task_set_task_data (G_TASK (result), NULL, NULL); + return finish_file_op (self, G_TASK (result), error); } @@ -1120,6 +1126,9 @@ gtk_file_dialog_save_finish (GtkFileDialog *self, g_return_val_if_fail (g_task_is_valid (result, self), NULL); g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_file_dialog_save, NULL); + /* Destroy the dialog window not to be bound to GTask lifecycle */ + g_task_set_task_data (G_TASK (result), NULL, NULL); + return finish_file_op (self, G_TASK (result), error); } @@ -1194,6 +1203,9 @@ gtk_file_dialog_open_multiple_finish (GtkFileDialog *self, g_return_val_if_fail (g_task_is_valid (result, self), NULL); g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_file_dialog_open_multiple, NULL); + /* Destroy the dialog window not to be bound to GTask lifecycle */ + g_task_set_task_data (G_TASK (result), NULL, NULL); + return finish_multiple_files_op (self, G_TASK (result), error); } @@ -1268,6 +1280,9 @@ gtk_file_dialog_select_multiple_folders_finish (GtkFileDialog *self, g_return_val_if_fail (g_task_is_valid (result, self), NULL); g_return_val_if_fail (g_task_get_source_tag (G_TASK (result)) == gtk_file_dialog_select_multiple_folders, NULL); + /* Destroy the dialog window not to be bound to GTask lifecycle */ + g_task_set_task_data (G_TASK (result), NULL, NULL); + return finish_multiple_files_op (self, G_TASK (result), error); } |