else
g_task_return_new_error (task, GTK_DIALOG_ERROR, GTK_DIALOG_ERROR_FAILED, "Unknown failure (%d)", response);
+ gtk_native_dialog_destroy (GTK_NATIVE_DIALOG (g_task_get_task_data (task)));
+
g_object_unref (task);
}
task = g_task_new (self, cancellable, callback, user_data);
g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_file_dialog_open);
- g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy);
+ g_task_set_task_data (task, chooser, g_object_unref);
if (cancellable)
g_signal_connect (cancellable, "cancelled", G_CALLBACK (cancelled_cb), task);
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);
}
task = g_task_new (self, cancellable, callback, user_data);
g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_file_dialog_select_folder);
- g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy);
+ g_task_set_task_data (task, chooser, g_object_unref);
if (cancellable)
g_signal_connect (cancellable, "cancelled", G_CALLBACK (cancelled_cb), task);
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);
}
task = g_task_new (self, cancellable, callback, user_data);
g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_file_dialog_save);
- g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy);
+ g_task_set_task_data (task, chooser, g_object_unref);
if (cancellable)
g_signal_connect (cancellable, "cancelled", G_CALLBACK (cancelled_cb), task);
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);
}
task = g_task_new (self, cancellable, callback, user_data);
g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_file_dialog_open_multiple);
- g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy);
+ g_task_set_task_data (task, chooser, g_object_unref);
if (cancellable)
g_signal_connect (cancellable, "cancelled", G_CALLBACK (cancelled_cb), task);
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);
}
task = g_task_new (self, cancellable, callback, user_data);
g_task_set_check_cancellable (task, FALSE);
g_task_set_source_tag (task, gtk_file_dialog_select_multiple_folders);
- g_task_set_task_data (task, chooser, (GDestroyNotify) gtk_native_dialog_destroy);
+ g_task_set_task_data (task, chooser, g_object_unref);
if (cancellable)
g_signal_connect (cancellable, "cancelled", G_CALLBACK (cancelled_cb), task);
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);
}