summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Wehner <martin.wehner@epost.de>2005-02-07 23:28:05 +0000
committerMartin Wehner <mwehner@src.gnome.org>2005-02-07 23:28:05 +0000
commit9c05d0f2e5f5accdbd7795aea7c0beb93beb161e (patch)
tree65e875b9ac8dcc521efd55b79fd0e992e4b95d4e
parent55b7f033f2cfe445090e459c28661f57c6a46aed (diff)
downloadnautilus-gnome-2-8.tar.gz
Handle disappearing original_files without crashing. Fixes buggnome-2-8
2005-02-07 Martin Wehner <martin.wehner@epost.de> * src/file-manager/fm-properties-window.c: (get_original_file), (name_field_done_editing), (update_properties_window_title): Handle disappearing original_files without crashing. Fixes bug #151024/158904.
-rw-r--r--ChangeLog7
-rw-r--r--src/file-manager/fm-properties-window.c24
2 files changed, 24 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index d85a7e5d7..ad6cb8b0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-02-07 Martin Wehner <martin.wehner@epost.de>
+
+ * src/file-manager/fm-properties-window.c: (get_original_file),
+ (name_field_done_editing), (update_properties_window_title):
+ Handle disappearing original_files without crashing.
+ Fixes bug #151024/158904.
+
2004-12-13 Dwayne Bailey <dwayne@translate.org.za>
* configure.in: Added "zu" to ALL_LINGUAS.
diff --git a/src/file-manager/fm-properties-window.c b/src/file-manager/fm-properties-window.c
index cd4b23937..afa6ce32a 100644
--- a/src/file-manager/fm-properties-window.c
+++ b/src/file-manager/fm-properties-window.c
@@ -264,6 +264,10 @@ get_original_file (FMPropertiesWindow *window)
{
g_return_val_if_fail (!is_multi_file_window (window), NULL);
+ if (window->details->original_files == NULL) {
+ return NULL;
+ }
+
return NAUTILUS_FILE (window->details->original_files->data);
}
@@ -702,7 +706,7 @@ name_field_done_editing (NautilusEntry *name_field, FMPropertiesWindow *window)
/* This gets called when the window is closed, which might be
* caused by the file having been deleted.
*/
- if (nautilus_file_is_gone (file)) {
+ if (file == NULL || nautilus_file_is_gone (file)) {
return;
}
@@ -912,15 +916,21 @@ static void
update_properties_window_title (FMPropertiesWindow *window)
{
char *name, *title;
+ NautilusFile *file;
g_return_if_fail (GTK_IS_WINDOW (window));
- if (is_multi_file_window (window)) {
- title = g_strdup_printf (_("Properties"));
- } else {
- name = nautilus_file_get_display_name (get_original_file (window));
- title = g_strdup_printf (_("%s Properties"), name);
- g_free (name);
+ title = g_strdup_printf (_("Properties"));
+
+ if (!is_multi_file_window (window)) {
+ file = get_original_file (window);
+
+ if (file != NULL) {
+ g_free (title);
+ name = nautilus_file_get_display_name (file);
+ title = g_strdup_printf (_("%s Properties"), name);
+ g_free (name);
+ }
}
gtk_window_set_title (GTK_WINDOW (window), title);