summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2006-11-07 10:50:33 +0000
committerAlexander Larsson <alexl@src.gnome.org>2006-11-07 10:50:33 +0000
commitfe6e7d4c8c0c3c8467eb2e3754e1f44f7ad42cce (patch)
tree88a322aed28fc3ea2e820c07bcccf23f47d327e1
parent3dfdf85c6d4474d89050e7f87f92d22858bb28c1 (diff)
downloadnautilus-fe6e7d4c8c0c3c8467eb2e3754e1f44f7ad42cce.tar.gz
Make the session restart work again (from 2006-11-03 change) Make the
2006-11-07 Alexander Larsson <alexl@redhat.com> * src/nautilus-application.c: * src/nautilus-shell.c: * src/nautilus-main.[ch]: Make the session restart work again (from 2006-11-03 change) Make the session not restart nautilus on --quit
-rw-r--r--ChangeLog8
-rw-r--r--src/nautilus-application.c13
-rw-r--r--src/nautilus-main.c8
-rw-r--r--src/nautilus-main.h2
-rw-r--r--src/nautilus-shell.c6
5 files changed, 26 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 22721bab9..f7f78c383 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-11-07 Alexander Larsson <alexl@redhat.com>
+
+ * src/nautilus-application.c:
+ * src/nautilus-shell.c:
+ * src/nautilus-main.[ch]:
+ Make the session restart work again (from 2006-11-03 change)
+ Make the session not restart nautilus on --quit
+
2006-11-06 Federico Mena Quintero <federico@novell.com>
http://bugzilla.gnome.org/show_bug.cgi?id=330298
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index d26f4241a..b879c3e44 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -803,6 +803,9 @@ nautilus_application_open_desktop (NautilusApplication *application)
{
if (nautilus_application_desktop_windows == NULL) {
nautilus_application_create_desktop_windows (application);
+
+ /* Make sure we update the session when the desktop is created */
+ update_session (gnome_master_client ());
}
}
@@ -814,6 +817,9 @@ nautilus_application_close_desktop (void)
(GFunc) gtk_widget_destroy, NULL);
g_list_free (nautilus_application_desktop_windows);
nautilus_application_desktop_windows = NULL;
+
+ /* Make sure we update the session when the desktop goes away */
+ update_session (gnome_master_client ());
}
}
@@ -1258,11 +1264,6 @@ desktop_changed_callback (gpointer user_data)
} else {
nautilus_application_close_desktop ();
}
-
- /* Can't make this function just watch the preference
- * itself changing since ordering is important
- */
- update_session (gnome_master_client ());
}
static gboolean
@@ -1359,7 +1360,7 @@ volume_unmounted_callback (GnomeVFSVolumeMonitor *monitor,
static void
removed_from_session (GnomeClient *client, gpointer data)
{
- nautilus_main_event_loop_quit ();
+ nautilus_main_event_loop_quit (FALSE);
}
static char *
diff --git a/src/nautilus-main.c b/src/nautilus-main.c
index 5b0669193..99ae0207b 100644
--- a/src/nautilus-main.c
+++ b/src/nautilus-main.c
@@ -48,6 +48,7 @@
#include <glib/gi18n.h>
#include <libgnome/gnome-init.h>
#include <libgnomeui/gnome-ui-init.h>
+#include <libgnomeui/gnome-client.h>
#include <libgnomevfs/gnome-vfs-init.h>
#include <libnautilus-private/nautilus-directory-metafile.h>
#include <libnautilus-private/nautilus-global-preferences.h>
@@ -132,8 +133,13 @@ nautilus_main_is_event_loop_mainstay (GtkObject *object)
}
void
-nautilus_main_event_loop_quit (void)
+nautilus_main_event_loop_quit (gboolean explicit)
{
+ if (explicit) {
+ /* Explicit --quit, make sure we don't restart */
+ gnome_client_set_restart_style (gnome_master_client (),
+ GNOME_RESTART_IF_RUNNING);
+ }
while (event_loop_registrants != NULL) {
gtk_object_destroy (event_loop_registrants->data);
}
diff --git a/src/nautilus-main.h b/src/nautilus-main.h
index 1a434f96e..3c9671505 100644
--- a/src/nautilus-main.h
+++ b/src/nautilus-main.h
@@ -31,7 +31,7 @@
void nautilus_main_event_loop_register (GtkObject *object);
gboolean nautilus_main_is_event_loop_mainstay (GtkObject *object);
-void nautilus_main_event_loop_quit (void);
+void nautilus_main_event_loop_quit (gboolean explicit);
#endif /* NAUTILUS_MAIN_H */
diff --git a/src/nautilus-shell.c b/src/nautilus-shell.c
index 2fed6ede4..1ba3f1f51 100644
--- a/src/nautilus-shell.c
+++ b/src/nautilus-shell.c
@@ -302,7 +302,7 @@ start_desktop_at_idle (gpointer _data)
application = NAUTILUS_APPLICATION (data->shell->details->application);
nautilus_application_open_desktop (application);
-
+
g_free (data);
return FALSE;
}
@@ -337,7 +337,7 @@ corba_stop_desktop (PortableServer_Servant servant,
static gboolean
quit_at_idle (gpointer data)
{
- nautilus_main_event_loop_quit ();
+ nautilus_main_event_loop_quit (TRUE);
return FALSE;
}
@@ -508,7 +508,7 @@ restart_at_idle (gpointer data)
{
save_window_states ();
- nautilus_main_event_loop_quit ();
+ nautilus_main_event_loop_quit (TRUE);
g_setenv ("_NAUTILUS_RESTART", "yes", 1);
return FALSE;
}