[gthumb] respect the IGNORE_ERROR flag for background tasks
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] respect the IGNORE_ERROR flag for background tasks
- Date: Wed, 23 Dec 2015 20:24:51 +0000 (UTC)
commit ea7f82479c119f0d37d79f4159336b77bb8624fa
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 e79ee99..d41168b 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -5424,9 +5424,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;
@@ -5454,20 +5455,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),
@@ -5518,7 +5525,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]