diff options
author | Alexander Larsson <alexl@redhat.com> | 2004-12-15 14:33:04 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2004-12-15 14:33:04 +0000 |
commit | b647dd9da219330ecd1c26dc90cf6c421298f600 (patch) | |
tree | dc2da6aaaa4916dfb19c03d8205041ba7f6565ff | |
parent | 9a34ea6e028adf20fb12c470e3d5aabbe9dd61c4 (diff) | |
download | nautilus-b647dd9da219330ecd1c26dc90cf6c421298f600.tar.gz |
Make sure we don't rename files if the name was never changed from the
2004-12-15 Alexander Larsson <alexl@redhat.com>
* src/file-manager/fm-list-view.c: (cell_renderer_edited),
(fm_list_view_start_renaming_file):
* src/file-manager/fm-properties-window.c:
(name_field_done_editing):
Make sure we don't rename files if the name was never
changed from the original display name.
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | src/file-manager/fm-list-view.c | 15 | ||||
-rw-r--r-- | src/file-manager/fm-properties-window.c | 16 |
3 files changed, 34 insertions, 6 deletions
@@ -1,5 +1,14 @@ 2004-12-15 Alexander Larsson <alexl@redhat.com> + * src/file-manager/fm-list-view.c: (cell_renderer_edited), + (fm_list_view_start_renaming_file): + * src/file-manager/fm-properties-window.c: + (name_field_done_editing): + Make sure we don't rename files if the name was never + changed from the original display name. + +2004-12-15 Alexander Larsson <alexl@redhat.com> + * src/nautilus-location-dialog.c: (nautilus_location_dialog_new): Fill in ctrl-l dialog correctly for desktop. diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c index c663757a5..1263d86b4 100644 --- a/src/file-manager/fm-list-view.c +++ b/src/file-manager/fm-list-view.c @@ -112,6 +112,8 @@ struct FMListViewDetails { GHashTable *columns; GtkWidget *column_editor; + + char *original_name; }; /* @@ -854,7 +856,12 @@ cell_renderer_edited (GtkCellRendererText *cell, FM_LIST_MODEL_FILE_COLUMN, &file, -1); - fm_rename_file (file, new_text); + /* Only rename if name actually changed */ + if (strcmp (new_text, view->details->original_name) != 0) { + fm_rename_file (file, new_text); + } + g_free (view->details->original_name); + view->details->original_name = NULL; nautilus_file_unref (file); @@ -1888,7 +1895,8 @@ fm_list_view_start_renaming_file (FMDirectoryView *view, NautilusFile *file) TRUE); entry = GTK_ENTRY (list_view->details->file_name_column->editable_widget); - eel_filename_get_rename_region (gtk_entry_get_text (entry), + list_view->details->original_name = g_strdup (gtk_entry_get_text (entry)); + eel_filename_get_rename_region (list_view->details->original_name, &start_offset, &end_offset); gtk_editable_select_region (GTK_EDITABLE (entry), start_offset, end_offset); @@ -2030,6 +2038,9 @@ fm_list_view_finalize (GObject *object) list_view = FM_LIST_VIEW (object); + g_free (list_view->details->original_name); + list_view->details->original_name = NULL; + if (list_view->details->double_click_path[0]) { gtk_tree_path_free (list_view->details->double_click_path[0]); } diff --git a/src/file-manager/fm-properties-window.c b/src/file-manager/fm-properties-window.c index 2b3a67de8..1d4a81689 100644 --- a/src/file-manager/fm-properties-window.c +++ b/src/file-manager/fm-properties-window.c @@ -685,6 +685,7 @@ name_field_done_editing (NautilusEntry *name_field, FMPropertiesWindow *window) { NautilusFile *file; char *new_name; + const char *original_name; g_return_if_fail (NAUTILUS_IS_ENTRY (name_field)); @@ -708,10 +709,17 @@ name_field_done_editing (NautilusEntry *name_field, FMPropertiesWindow *window) if (strlen (new_name) == 0) { name_field_restore_original_name (NAUTILUS_ENTRY (name_field)); } else { - set_pending_name (window, new_name); - g_object_ref (window); - nautilus_file_rename (file, new_name, - rename_callback, window); + original_name = (const char *) g_object_get_data (G_OBJECT (window->details->name_field), + "original_name"); + /* Don't rename if not changed since we read the display name. + This is needed so that we don't save the display name to the + file when nothing is changed */ + if (strcmp (new_name, original_name) != 0) { + set_pending_name (window, new_name); + g_object_ref (window); + nautilus_file_rename (file, new_name, + rename_callback, window); + } } g_free (new_name); |