[gthumb] use an inner flag to keep track of the ImportPhoto window



commit cb4bae1b6722e2fe03dba8a371a792729fe0607e
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Thu Jun 13 09:27:46 2013 +0200

    use an inner flag to keep track of the ImportPhoto window

 extensions/importer/gth-import-task.c          |    2 +-
 extensions/photo_importer/dlg-photo-importer.c |    2 +-
 gthumb/gth-browser.c                           |   19 ++++++++++++++++++-
 gthumb/gth-browser.h                           |    3 +++
 gthumb/main.c                                  |    1 +
 5 files changed, 24 insertions(+), 3 deletions(-)
---
diff --git a/extensions/importer/gth-import-task.c b/extensions/importer/gth-import-task.c
index b80c3f1..0683dce 100644
--- a/extensions/importer/gth-import-task.c
+++ b/extensions/importer/gth-import-task.c
@@ -72,7 +72,7 @@ gth_import_task_finalize (GObject *object)
 
        self = GTH_IMPORT_TASK (object);
 
-       if (ImportPhotos)
+       if (gth_browser_get_close_with_task (self->priv->browser))
                gtk_window_present (GTK_WINDOW (self->priv->browser));
 
        g_free (self->priv->buffer);
diff --git a/extensions/photo_importer/dlg-photo-importer.c b/extensions/photo_importer/dlg-photo-importer.c
index c0b523d..2009ab2 100644
--- a/extensions/photo_importer/dlg-photo-importer.c
+++ b/extensions/photo_importer/dlg-photo-importer.c
@@ -159,7 +159,7 @@ destroy_dialog (gpointer user_data)
        _g_object_list_unref (data->files);
        _g_string_list_free (data->general_tests);
 
-       if (! data->import && ImportPhotos)
+       if (! data->import && gth_browser_get_close_with_task (data->browser))
                gth_window_close (GTH_WINDOW (data->browser));
 
        g_free (data);
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index e687daf..4263409 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -165,6 +165,7 @@ struct _GthBrowserPrivate {
        gulong             task_completed;
        gulong             task_progress;
        GList             *background_tasks;
+       gboolean           close_with_task;
        GList             *load_data_queue;
        GList             *load_file_data_queue;
        guint              load_file_timeout;
@@ -187,7 +188,7 @@ struct _GthBrowserPrivate {
        GSettings         *messages_settings;
        GSettings         *desktop_interface_settings;
 
-       /* fulscreen */
+       /* fullscreen */
 
        gboolean           fullscreen;
        GtkWidget         *fullscreen_toolbar;
@@ -4328,6 +4329,7 @@ gth_browser_init (GthBrowser *browser)
        browser->priv->task_completed = 0;
        browser->priv->task_progress = 0;
        browser->priv->background_tasks = NULL;
+       browser->priv->close_with_task = FALSE;
        browser->priv->load_data_queue = NULL;
        browser->priv->load_file_data_queue = NULL;
        browser->priv->load_file_timeout = 0;
@@ -5326,6 +5328,21 @@ gth_browser_exec_task (GthBrowser *browser,
 }
 
 
+void
+gth_browser_set_close_with_task (GthBrowser *browser,
+                                gboolean    value)
+{
+       browser->priv->close_with_task = value;
+}
+
+
+gboolean
+gth_browser_get_close_with_task (GthBrowser *browser)
+{
+       return browser->priv->close_with_task;
+}
+
+
 GtkWidget *
 gth_browser_get_list_extra_widget (GthBrowser *browser)
 {
diff --git a/gthumb/gth-browser.h b/gthumb/gth-browser.h
index 4e12d30..babb964 100644
--- a/gthumb/gth-browser.h
+++ b/gthumb/gth-browser.h
@@ -127,6 +127,9 @@ void             gth_browser_reload                 (GthBrowser       *browser);
 void             gth_browser_exec_task              (GthBrowser       *browser,
                                                     GthTask          *task,
                                                     gboolean          foreground);
+void             gth_browser_set_close_with_task    (GthBrowser       *browser,
+                                                    gboolean          value);
+gboolean         gth_browser_get_close_with_task    (GthBrowser       *browser);
 GtkWidget *      gth_browser_get_list_extra_widget  (GthBrowser       *browser);
 gboolean         gth_browser_viewer_button_press_cb (GthBrowser       *browser,
                                                     GdkEventButton   *event);
diff --git a/gthumb/main.c b/gthumb/main.c
index 9750d0b..b24468d 100644
--- a/gthumb/main.c
+++ b/gthumb/main.c
@@ -128,6 +128,7 @@ import_photos_from_location (GFile *location)
        GtkWidget *window;
 
        window = gth_browser_new (NULL, NULL);
+       gth_browser_set_close_with_task (GTH_BROWSER (window), TRUE);
        gth_hook_invoke ("import-photos", window, location, NULL);
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]