summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2004-12-15 14:33:04 +0000
committerAlexander Larsson <alexl@src.gnome.org>2004-12-15 14:33:04 +0000
commitb647dd9da219330ecd1c26dc90cf6c421298f600 (patch)
treedc2da6aaaa4916dfb19c03d8205041ba7f6565ff
parent9a34ea6e028adf20fb12c470e3d5aabbe9dd61c4 (diff)
downloadnautilus-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--ChangeLog9
-rw-r--r--src/file-manager/fm-list-view.c15
-rw-r--r--src/file-manager/fm-properties-window.c16
3 files changed, 34 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 8cece27b5..768d97837 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);