static void fm_list_view_start_renaming_file (FMDirectoryView *view, GOFFile *file, gboolean select_all) { FMListView *list_view; GtkTreeIter iter; GtkTreePath *path; gint start_offset, end_offset; list_view = FM_LIST_VIEW (view); /* Select all if we are in renaming mode already */ if (list_view->details->file_name_column && list_view->details->editable_widget) { gtk_editable_select_region (GTK_EDITABLE (list_view->details->editable_widget), 0, -1); return; } if (!fm_list_model_get_first_iter_for_file (list_view->model, file, &iter)) { g_debug ("%s FAILED", G_STRFUNC); return; } /* Freeze updates to the view to prevent losing rename focus when the tree view updates */ fm_list_view_freeze_updates (FM_LIST_VIEW (view)); path = gtk_tree_model_get_path (GTK_TREE_MODEL (list_view->model), &iter); /* Make filename-cells editable. */ g_object_set (G_OBJECT (list_view->details->file_name_cell), "editable", TRUE, NULL); gtk_tree_view_scroll_to_cell (list_view->tree, NULL, list_view->details->file_name_column, TRUE, 0.0, 0.0); /* set cursor also triggers editing-started, where we save the editable widget */ /*gtk_tree_view_set_cursor (list_view->tree, path, list_view->details->file_name_column, TRUE);*/ /* sound like set_cursor is not enought to trigger editing-started, we use cursor_on_cell instead */ gtk_tree_view_set_cursor_on_cell (list_view->tree, path, list_view->details->file_name_column, (GtkCellRenderer *) list_view->details->file_name_cell, TRUE); if (list_view->details->editable_widget != NULL) { eel_filename_get_rename_region (list_view->details->original_name, &start_offset, &end_offset); gtk_editable_select_region (GTK_EDITABLE (list_view->details->editable_widget), start_offset, end_offset); } gtk_tree_path_free (path); }
static void reset_button_clicked_cb (GtkButton *w, CajaFileConflictDialog *dialog) { CajaFileConflictDialogDetails *details; int start_pos, end_pos; details = dialog->details; gtk_entry_set_text (GTK_ENTRY (details->entry), details->conflict_name); gtk_widget_grab_focus (details->entry); eel_filename_get_rename_region (details->conflict_name, &start_pos, &end_pos); gtk_editable_select_region (GTK_EDITABLE (details->entry), start_pos, end_pos); }
static void expander_activated_cb (GtkExpander *w, NautilusFileConflictDialog *dialog) { NautilusFileConflictDialogDetails *details; int start_pos, end_pos; details = dialog->details; if (!gtk_expander_get_expanded (w)) { if (g_strcmp0 (gtk_entry_get_text (GTK_ENTRY (details->entry)), details->conflict_name) == 0) { gtk_widget_grab_focus (details->entry); eel_filename_get_rename_region (details->conflict_name, &start_pos, &end_pos); gtk_editable_select_region (GTK_EDITABLE (details->entry), start_pos, end_pos); } } }