diff options
author | Christian Neumair <chris@gnome-de.org> | 2006-06-21 16:26:23 +0000 |
---|---|---|
committer | Christian Neumair <cneumair@src.gnome.org> | 2006-06-21 16:26:23 +0000 |
commit | ac97cb95cff3581865342e2d64507906896f42e5 (patch) | |
tree | ecb54050a23d4703e9263ec4e3c27a4e3f9ecdd3 /src/nautilus-navigation-window.c | |
parent | c98d766500ba4533fb759ba83ad20045d81ae39e (diff) | |
download | nautilus-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-navigation-window.c')
-rw-r--r-- | src/nautilus-navigation-window.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/nautilus-navigation-window.c b/src/nautilus-navigation-window.c index c5a2d9b34..58ea44140 100644 --- a/src/nautilus-navigation-window.c +++ b/src/nautilus-navigation-window.c @@ -560,6 +560,22 @@ nautilus_navigation_window_unrealize (GtkWidget *widget) GTK_WIDGET_CLASS (parent_class)->unrealize (widget); } +static gboolean +nautilus_navigation_window_state_event (GtkWidget *widget, + GdkEventWindowState *event) +{ + if (event->changed_mask & GDK_WINDOW_STATE_MAXIMIZED) { + eel_preferences_set_boolean (NAUTILUS_PREFERENCES_NAVIGATION_WINDOW_MAXIMIZED, + event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED); + } + + if (GTK_WIDGET_CLASS (parent_class)->window_state_event != NULL) { + return GTK_WIDGET_CLASS (parent_class)->window_state_event (widget, event); + } + + return FALSE; +} + static void nautilus_navigation_window_destroy (GtkObject *object) { @@ -1418,8 +1434,7 @@ nautilus_navigation_window_save_geometry (NautilusNavigationWindow *window) g_assert (NAUTILUS_IS_WINDOW (window)); - if (GTK_WIDGET(window)->window && - !(gdk_window_get_state (GTK_WIDGET(window)->window) & GDK_WINDOW_STATE_MAXIMIZED)) { + if (GTK_WIDGET(window)->window) { geometry_string = eel_gtk_window_get_geometry_string (GTK_WINDOW (window)); if (eel_preferences_key_is_writable (NAUTILUS_PREFERENCES_NAVIGATION_WINDOW_SAVED_GEOMETRY)) { @@ -1428,6 +1443,12 @@ nautilus_navigation_window_save_geometry (NautilusNavigationWindow *window) geometry_string); } g_free (geometry_string); + + if (eel_preferences_key_is_writable (NAUTILUS_PREFERENCES_NAVIGATION_WINDOW_MAXIMIZED)) { + eel_preferences_set_boolean + (NAUTILUS_PREFERENCES_NAVIGATION_WINDOW_MAXIMIZED, + gdk_window_get_state (GTK_WIDGET (window)->window) & GDK_WINDOW_STATE_MAXIMIZED); + } } } @@ -1462,6 +1483,7 @@ nautilus_navigation_window_class_init (NautilusNavigationWindowClass *class) GTK_OBJECT_CLASS (class)->destroy = nautilus_navigation_window_destroy; GTK_WIDGET_CLASS (class)->show = nautilus_navigation_window_show; GTK_WIDGET_CLASS (class)->unrealize = nautilus_navigation_window_unrealize; + GTK_WIDGET_CLASS (class)->window_state_event = nautilus_navigation_window_state_event; NAUTILUS_WINDOW_CLASS (class)->load_view_as_menu = real_load_view_as_menu; NAUTILUS_WINDOW_CLASS (class)->set_content_view_widget = real_set_content_view_widget; NAUTILUS_WINDOW_CLASS (class)->set_throbber_active = real_set_throbber_active; |