nautilus r14402 - in trunk: . src
- From: cneumair svn gnome org
- To: svn-commits-list gnome org
- Subject: nautilus r14402 - in trunk: . src
- Date: Tue, 22 Jul 2008 13:01:15 +0000 (UTC)
Author: cneumair
Date: Tue Jul 22 13:01:15 2008
New Revision: 14402
URL: http://svn.gnome.org/viewvc/nautilus?rev=14402&view=rev
Log:
2008-07-22 Christian Neumair <cneumair gnome org>
* src/nautilus-spatial-window.c (save_window_geometry_timeout),
(nautilus_spatial_window_unrealize),
(nautilus_spatial_window_save_geometry),
(nautilus_spatial_window_save_scroll_position),
(nautilus_spatial_window_save_show_hidden_files_mode),
(real_close_slot), (nautilus_spatial_window_class_init):
* src/nautilus-spatial-window.h:
Make geomtry save methods per slot, rather than per window. The active
slot is set to NULL before they are closed. Fixes #542656.
Thanks to Frederic Peters.
Modified:
trunk/ChangeLog
trunk/src/nautilus-spatial-window.c
trunk/src/nautilus-spatial-window.h
Modified: trunk/src/nautilus-spatial-window.c
==============================================================================
--- trunk/src/nautilus-spatial-window.c (original)
+++ trunk/src/nautilus-spatial-window.c Tue Jul 22 13:01:15 2008
@@ -93,14 +93,20 @@
G_DEFINE_TYPE(NautilusSpatialWindow, nautilus_spatial_window, NAUTILUS_TYPE_WINDOW)
#define parent_class nautilus_spatial_window_parent_class
+static void nautilus_spatial_window_save_geometry (NautilusWindowSlot *slot);
+
static gboolean
save_window_geometry_timeout (gpointer callback_data)
{
NautilusSpatialWindow *window;
+ NautilusWindowSlot *slot;
window = NAUTILUS_SPATIAL_WINDOW (callback_data);
-
- nautilus_spatial_window_save_geometry (window);
+ slot = nautilus_window_get_active_slot (NAUTILUS_WINDOW (window));
+
+ if (slot != NULL) {
+ nautilus_spatial_window_save_geometry (slot);
+ }
window->details->save_geometry_timeout_id = 0;
@@ -157,15 +163,20 @@
nautilus_spatial_window_unrealize (GtkWidget *widget)
{
NautilusSpatialWindow *window;
+ NautilusWindowSlot *slot;
window = NAUTILUS_SPATIAL_WINDOW (widget);
+ slot = nautilus_window_get_active_slot (NAUTILUS_WINDOW (window));
GTK_WIDGET_CLASS (nautilus_spatial_window_parent_class)->unrealize (widget);
if (window->details->save_geometry_timeout_id != 0) {
g_source_remove (window->details->save_geometry_timeout_id);
window->details->save_geometry_timeout_id = 0;
- nautilus_spatial_window_save_geometry (window);
+
+ if (slot != NULL) {
+ nautilus_spatial_window_save_geometry (slot);
+ }
}
}
@@ -242,17 +253,15 @@
G_OBJECT_CLASS (nautilus_spatial_window_parent_class)->finalize (object);
}
-void
-nautilus_spatial_window_save_geometry (NautilusSpatialWindow *spatial_window)
+static void
+nautilus_spatial_window_save_geometry (NautilusWindowSlot *slot)
{
NautilusWindow *window;
- NautilusWindowSlot *slot;
NautilusFile *viewed_file;
char *geometry_string;
- window = NAUTILUS_WINDOW (spatial_window);
+ window = NAUTILUS_WINDOW (slot->window);
- slot = window->details->active_slot;
viewed_file = slot->viewed_file;
if (viewed_file == NULL) {
@@ -273,15 +282,13 @@
}
}
-void
-nautilus_spatial_window_save_scroll_position (NautilusSpatialWindow *window)
+static void
+nautilus_spatial_window_save_scroll_position (NautilusWindowSlot *slot)
{
- NautilusWindow *nautilus_window;
- NautilusWindowSlot *slot;
+ NautilusWindow *window;
char *scroll_string;
- nautilus_window = NAUTILUS_WINDOW (window);
- slot = nautilus_window_get_active_slot (nautilus_window);
+ window = NAUTILUS_WINDOW (slot->window);
if (slot->content_view == NULL) {
return;
@@ -295,14 +302,14 @@
g_free (scroll_string);
}
-void
-nautilus_spatial_window_save_show_hidden_files_mode (NautilusSpatialWindow *window)
+static void
+nautilus_spatial_window_save_show_hidden_files_mode (NautilusWindowSlot *slot)
{
- NautilusWindowSlot *slot;
+ NautilusWindow *window;
char *show_hidden_file_setting;
NautilusWindowShowHiddenFilesMode mode;
- slot = nautilus_window_get_active_slot (NAUTILUS_WINDOW (window));
+ window = NAUTILUS_WINDOW (slot->window);
mode = NAUTILUS_WINDOW (window)->details->show_hidden_files_mode;
if (mode != NAUTILUS_WINDOW_SHOW_HIDDEN_FILES_DEFAULT) {
@@ -398,14 +405,6 @@
sync_window_title (window);
}
-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));
- nautilus_spatial_window_save_show_hidden_files_mode (NAUTILUS_SPATIAL_WINDOW (window));
-}
-
static void
real_get_default_size (NautilusWindow *window,
guint *default_width, guint *default_height)
@@ -466,7 +465,10 @@
{
g_assert (g_list_length (window->details->slots) == 1);
- /* nothing to do */
+ nautilus_spatial_window_save_geometry (slot);
+ nautilus_spatial_window_save_scroll_position (slot);
+ nautilus_spatial_window_save_show_hidden_files_mode (slot);
+
EEL_CALL_PARENT (NAUTILUS_WINDOW_CLASS,
close_slot, (window, slot));
}
@@ -1029,8 +1031,6 @@
real_get_icon;
NAUTILUS_WINDOW_CLASS (class)->sync_title =
real_sync_title;
- NAUTILUS_WINDOW_CLASS (class)->close =
- real_window_close;
NAUTILUS_WINDOW_CLASS(class)->get_default_size = real_get_default_size;
NAUTILUS_WINDOW_CLASS(class)->sync_allow_stop =
Modified: trunk/src/nautilus-spatial-window.h
==============================================================================
--- trunk/src/nautilus-spatial-window.h (original)
+++ trunk/src/nautilus-spatial-window.h Tue Jul 22 13:01:15 2008
@@ -57,9 +57,6 @@
GType nautilus_spatial_window_get_type (void);
-void nautilus_spatial_window_save_geometry (NautilusSpatialWindow *window);
-void nautilus_spatial_window_save_scroll_position (NautilusSpatialWindow *window);
-void nautilus_spatial_window_save_show_hidden_files_mode (NautilusSpatialWindow *window);
void nautilus_spatial_window_set_location_button (NautilusSpatialWindow *window,
GFile *location);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]