[gthumb/gthumb-3-4] respect the IGNORE_ERROR flag for background tasks
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb/gthumb-3-4] respect the IGNORE_ERROR flag for background tasks
- Date: Wed, 23 Dec 2015 20:26:02 +0000 (UTC)
commit c3186e5d70ac788aabcaace1d0db734db9d40a60
Author: Paolo Bacchilega <paobac src gnome org>
Date: Wed Dec 23 21:24:07 2015 +0100
respect the IGNORE_ERROR flag for background tasks
gthumb/gth-browser.c | 21 ++++++++++++++-------
1 files changed, 14 insertions(+), 7 deletions(-)
---
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index f42be8e..3524c7a 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -5422,9 +5422,10 @@ gth_browser_reload (GthBrowser *browser)
typedef struct {
- GthBrowser *browser;
- GthTask *task;
- gulong completed_event;
+ GthBrowser *browser;
+ GthTask *task;
+ GthTaskFlags flags;
+ gulong completed_event;
} TaskData;
@@ -5452,20 +5453,26 @@ background_task_completed_cb (GthTask *task,
if (error == NULL)
return;
- if ((error->domain == G_IO_ERROR) && ! g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ if ((error->domain == G_IO_ERROR)
+ && ! g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)
+ && ((task_data->flags & GTH_TASK_FLAGS_IGNORE_ERROR) == 0))
+ {
_gth_browser_show_error (browser, _("Could not perform the operation"), error);
+ }
}
static TaskData *
-task_data_new (GthBrowser *browser,
- GthTask *task)
+task_data_new (GthBrowser *browser,
+ GthTask *task,
+ GthTaskFlags flags)
{
TaskData *task_data;
task_data = g_new0 (TaskData, 1);
task_data->browser = g_object_ref (browser);
task_data->task = g_object_ref (task);
+ task_data->flags = flags;
task_data->completed_event = g_signal_connect (task_data->task,
"completed",
G_CALLBACK (background_task_completed_cb),
@@ -5516,7 +5523,7 @@ gth_browser_exec_task (GthBrowser *browser,
if ((flags & GTH_TASK_FLAGS_FOREGROUND) == 0) {
TaskData *task_data;
- task_data = task_data_new (browser, task);
+ task_data = task_data_new (browser, task, flags);
browser->priv->background_tasks = g_list_prepend (browser->priv->background_tasks, task_data);
if (browser->priv->progress_dialog == NULL) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]