From a2ca65653475420b90fcfc7dba122ca8721212fc Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Wed, 17 Dec 2003 11:39:12 +0000 Subject: Virtualize close_window 2003-12-17 Alexander Larsson * src/nautilus-window.h: * src/nautilus-window.c (nautilus_window_close): Virtualize close_window * src/nautilus-spatial-window.c (real_window_close): Save geometry and scroll position on window close, not on delete event. Also, since the timeout geometry save isn't really needed anymore, up that to one second. --- ChangeLog | 11 +++++++++++ src/nautilus-spatial-window.c | 15 +++++++-------- src/nautilus-window.c | 5 ++++- src/nautilus-window.h | 3 ++- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6ab1e9334..5996d5a4b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2003-12-17 Alexander Larsson + + * src/nautilus-window.h: + * src/nautilus-window.c (nautilus_window_close): + Virtualize close_window + + * src/nautilus-spatial-window.c (real_window_close): + Save geometry and scroll position on window close, not + on delete event. Also, since the timeout geometry save + isn't really needed anymore, up that to one second. + 2003-12-16 Alexander Larsson * src/file-manager/fm-icon-view.c (play_file): diff --git a/src/nautilus-spatial-window.c b/src/nautilus-spatial-window.c index c56c033d7..8a19e7f97 100644 --- a/src/nautilus-spatial-window.c +++ b/src/nautilus-spatial-window.c @@ -121,7 +121,7 @@ nautilus_spatial_window_configure_event (GtkWidget *widget, GTK_WIDGET_CLASS (parent_class)->configure_event (widget, event); /* Only save the geometry if the user hasn't resized the window - * for half a second. Otherwise delay the callback another half second. + * for a second. Otherwise delay the callback another second. */ if (window->details->save_geometry_timeout_id != 0) { g_source_remove (window->details->save_geometry_timeout_id); @@ -149,7 +149,7 @@ nautilus_spatial_window_configure_event (GtkWidget *widget, window->details->last_geometry = geometry_string; window->details->save_geometry_timeout_id = - g_timeout_add (500, save_window_geometry_timeout, window); + g_timeout_add (1000, save_window_geometry_timeout, window); } return FALSE; @@ -314,12 +314,11 @@ real_set_content_view_widget (NautilusWindow *window, GTK_WIDGET (new_view)); } -static gboolean -real_delete_event (GtkWidget *window, GdkEventAny *event) +static void +real_window_close (NautilusWindow *window) { + nautilus_spatial_window_save_geometry (NAUTILUS_SPATIAL_WINDOW (window)); nautilus_spatial_window_save_scroll_position (NAUTILUS_SPATIAL_WINDOW (window)); - - return FALSE; } static void @@ -365,7 +364,7 @@ nautilus_spatial_window_class_init (NautilusSpatialWindowClass *class) real_merge_menus; NAUTILUS_WINDOW_CLASS (class)->set_content_view_widget = real_set_content_view_widget; - GTK_WIDGET_CLASS (class)->delete_event = - real_delete_event; + NAUTILUS_WINDOW_CLASS (class)->close = + real_window_close; NAUTILUS_WINDOW_CLASS(class)->get_default_size = real_get_default_size; } diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 34e38b213..5a9631b88 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -591,7 +591,7 @@ set_initial_window_geometry (NautilusWindow *window) max_height_for_screen)); EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window, - get_default_size, (window , &default_width, &default_height)); + get_default_size, (window, &default_width, &default_height)); gtk_window_set_default_size (GTK_WINDOW (window), MIN (default_width, @@ -784,6 +784,9 @@ nautilus_window_close (NautilusWindow *window) { g_return_if_fail (NAUTILUS_IS_WINDOW (window)); + EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window, + close, (window)); + gtk_widget_destroy (GTK_WIDGET (window)); } diff --git a/src/nautilus-window.h b/src/nautilus-window.h index 8dec3c62b..d7e92c1a7 100644 --- a/src/nautilus-window.h +++ b/src/nautilus-window.h @@ -75,7 +75,8 @@ typedef struct { void (* set_throbber_active) (NautilusWindow *window, gboolean active); void (* prompt_for_location) (NautilusWindow *window); - void (* get_default_size) ( NautilusWindow *window, guint *default_width, guint *default_height); + void (* get_default_size) (NautilusWindow *window, guint *default_width, guint *default_height); + void (* close) (NautilusWindow *window); } NautilusWindowClass; typedef enum { -- cgit v1.2.1