[nautilus] application: don't quit if there are pending file operations
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] application: don't quit if there are pending file operations
- Date: Fri, 14 Jan 2011 17:55:28 +0000 (UTC)
commit bf5d259288868a70258e63960ddc0eabe96bf9c8
Author: Cosimo Cecchi <cosimoc gnome org>
Date: Fri Jan 14 18:53:16 2011 +0100
application: don't quit if there are pending file operations
Now that we're a single-window application, this has become much more
relevant.
libnautilus-private/nautilus-progress-info.c | 4 ++++
libnautilus-private/nautilus-ui-utilities.c | 23 +++++++++++++++++++++++
libnautilus-private/nautilus-ui-utilities.h | 3 +++
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 3b8d54c..66725a5 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 e60f1e3..247bcee 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 5c34eed..71b71b3 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 b7e526d..78ca48d 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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]