diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2011-01-14 18:53:16 +0100 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2011-01-14 18:53:16 +0100 |
commit | bf5d259288868a70258e63960ddc0eabe96bf9c8 (patch) | |
tree | bff1a6c2b02e4951ef4b6b5c2a5ee50909bde9ff | |
parent | f4637ff4481ee6d7d1e0453a5bd3ec4ac9dca17d (diff) | |
download | nautilus-bf5d259288868a70258e63960ddc0eabe96bf9c8.tar.gz |
application: don't quit if there are pending file operations
Now that we're a single-window application, this has become much more
relevant.
-rw-r--r-- | libnautilus-private/nautilus-progress-info.c | 4 | ||||
-rw-r--r-- | libnautilus-private/nautilus-ui-utilities.c | 23 | ||||
-rw-r--r-- | libnautilus-private/nautilus-ui-utilities.h | 3 | ||||
-rw-r--r-- | src/nautilus-application.c | 4 |
4 files changed, 33 insertions, 1 deletions
diff --git a/libnautilus-private/nautilus-progress-info.c b/libnautilus-private/nautilus-progress-info.c index 3b8d54cae..66725a51b 100644 --- a/libnautilus-private/nautilus-progress-info.c +++ b/libnautilus-private/nautilus-progress-info.c @@ -29,6 +29,7 @@ #include <eel/eel-string.h> #include <eel/eel-glib-extensions.h> #include "nautilus-progress-info.h" +#include "nautilus-ui-utilities.h" enum { CHANGED, @@ -227,6 +228,9 @@ get_progress_window (void) GTK_WIN_POS_CENTER); gtk_window_set_icon_name (GTK_WINDOW (progress_window), "system-file-manager"); + + gtk_application_add_window (nautilus_get_application (), + GTK_WINDOW (progress_window)); vbox = gtk_vbox_new (FALSE, 0); gtk_box_set_spacing (GTK_BOX (vbox), 5); diff --git a/libnautilus-private/nautilus-ui-utilities.c b/libnautilus-private/nautilus-ui-utilities.c index e60f1e3c5..247bceea7 100644 --- a/libnautilus-private/nautilus-ui-utilities.c +++ b/libnautilus-private/nautilus-ui-utilities.c @@ -30,6 +30,29 @@ #include <gtk/gtk.h> #include <eel/eel-debug.h> +/* FIXME: this is needed only because we need to access the application + * object from inside libnautilus-private and that's in src instead. + */ +static GtkApplication *app = NULL; + +GtkApplication * +nautilus_get_application (void) +{ + g_assert (app != NULL); + + return app; +} + +void +nautilus_store_application (GtkApplication *application) +{ + if (app != NULL) { + return; + } + + app = application; +} + void nautilus_ui_unmerge_ui (GtkUIManager *ui_manager, guint *merge_id, diff --git a/libnautilus-private/nautilus-ui-utilities.h b/libnautilus-private/nautilus-ui-utilities.h index 5c34eed3c..71b71b32b 100644 --- a/libnautilus-private/nautilus-ui-utilities.h +++ b/libnautilus-private/nautilus-ui-utilities.h @@ -40,4 +40,7 @@ GtkAction * nautilus_action_from_menu_item (NautilusMenuItem *item); GtkAction * nautilus_toolbar_action_from_menu_item (NautilusMenuItem *item); const char *nautilus_ui_string_get (const char *filename); +GtkApplication *nautilus_get_application (void); +void nautilus_store_application (GtkApplication *application); + #endif /* NAUTILUS_UI_UTILITIES_H */ diff --git a/src/nautilus-application.c b/src/nautilus-application.c index b7e526ded..78ca48d2e 100644 --- a/src/nautilus-application.c +++ b/src/nautilus-application.c @@ -57,6 +57,7 @@ #include <libnautilus-private/nautilus-lib-self-check-functions.h> #include <libnautilus-private/nautilus-module.h> #include <libnautilus-private/nautilus-signaller.h> +#include <libnautilus-private/nautilus-ui-utilities.h> #include <libnautilus-private/nautilus-undo-manager.h> #include <libnautilus-extension/nautilus-menu-provider.h> @@ -1245,7 +1246,8 @@ nautilus_application_constructor (GType type, static void nautilus_application_init (NautilusApplication *application) { - /* do nothing */ + /* FIXME: make this available to libnautilus-private in another way */ + nautilus_store_application (GTK_APPLICATION (application)); } static void |