summaryrefslogtreecommitdiff
path: root/src/nautilus-shell.c
diff options
context:
space:
mode:
authorChristian Neumair <chris@gnome-de.org>2006-06-21 16:26:23 +0000
committerChristian Neumair <cneumair@src.gnome.org>2006-06-21 16:26:23 +0000
commitac97cb95cff3581865342e2d64507906896f42e5 (patch)
treeecb54050a23d4703e9263ec4e3c27a4e3f9ecdd3 /src/nautilus-shell.c
parentc98d766500ba4533fb759ba83ad20045d81ae39e (diff)
downloadnautilus-ac97cb95cff3581865342e2d64507906896f42e5.tar.gz
Add complete session management, remember maximization state and type of
2006-06-21 Christian Neumair <chris@gnome-de.org> Add complete session management, remember maximization state and type of open windows, save history on quit. * libnautilus-private/nautilus-global-preferences.c * libnautilus-private/nautilus-global-preferences.h: Add NAUTILUS_PREFERENCES_NAVIGATION_WINDOW_MAXIMIZED setting. * libnautilus-private/nautilus-metadata.h: Add NAUTILUS_METADATA_KEY_WINDOW_MAXIMIZED key. * src/nautilus-application.c: * src/nautilus-application.h: Save session on session save request, add nautilus_application_load_session(), move initial navigational geometry handling to nautilus_application_create_navigation_window, maximize window if NAUTILUS_PREFERENCES_NAVIGATION_WINDOW_MAXIMIZED is set. * src/nautilus-main.c: Add "--load-session" parameter. * src/nautilus-shell-interface.idl: * src/nautilus-shell.c: Add load_session CORBA method. * src/nautilus-navigation-window.c: * src/nautilus-spatial-window.c: Save maximized state when appropriate. * src/nautilus-window-manage-views.c: Load maximized state for spatial windows, remove navigation window geometry handling. * src/nautilus-window.c: * src/nautilus-window-private.h: Add nautilus_add_to_history_list_no_notify.
Diffstat (limited to 'src/nautilus-shell.c')
-rw-r--r--src/nautilus-shell.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/nautilus-shell.c b/src/nautilus-shell.c
index 47fc457cf..36ea70931 100644
--- a/src/nautilus-shell.c
+++ b/src/nautilus-shell.c
@@ -72,6 +72,9 @@ static void corba_open_default_window (PortableServer_Servant servant
const CORBA_char *geometry,
CORBA_boolean browser_window,
CORBA_Environment *ev);
+static void corba_load_session (PortableServer_Servant servant,
+ const CORBA_char *filename,
+ CORBA_Environment *ev);
static void corba_start_desktop (PortableServer_Servant servant,
CORBA_Environment *ev);
static void corba_stop_desktop (PortableServer_Servant servant,
@@ -93,6 +96,7 @@ nautilus_shell_class_init (NautilusShellClass *klass)
klass->epv.open_windows = corba_open_windows;
klass->epv.open_default_window = corba_open_default_window;
+ klass->epv.load_session = corba_load_session;
klass->epv.start_desktop = corba_start_desktop;
klass->epv.stop_desktop = corba_stop_desktop;
klass->epv.quit = corba_quit;
@@ -205,6 +209,20 @@ corba_open_default_window (PortableServer_Servant servant,
}
static void
+corba_load_session (PortableServer_Servant servant,
+ const CORBA_char *filename,
+ CORBA_Environment *ev)
+{
+ NautilusShell *shell;
+ NautilusApplication *application;
+
+ shell = NAUTILUS_SHELL (bonobo_object_from_servant (servant));
+ application = NAUTILUS_APPLICATION (shell->details->application);
+
+ nautilus_application_load_session (application, filename);
+}
+
+static void
corba_start_desktop (PortableServer_Servant servant,
CORBA_Environment *ev)
{