diff --git a/thunar/thunar-shortcuts-view.c b/thunar/thunar-shortcuts-view.c index 02005bfba38c444e4a0405c56d017f7fa4b8f913..935066bcbec0acfa4cfacbb076c4996b8c03b15f 100644 --- a/thunar/thunar-shortcuts-view.c +++ b/thunar/thunar-shortcuts-view.c @@ -122,6 +122,8 @@ static void thunar_shortcuts_view_context_menu (Thunar GtkTreeIter *iter); static void thunar_shortcuts_view_remove_activated (GtkWidget *item, GtkTreeModel *model); +static void thunar_shortcuts_view_editing_canceled (GtkCellRenderer *renderer, + ThunarShortcutsView *view); static void thunar_shortcuts_view_rename_activated (GtkWidget *item, ThunarShortcutsView *view); static void thunar_shortcuts_view_renamed (GtkCellRenderer *renderer, @@ -1319,6 +1321,19 @@ thunar_shortcuts_view_remove_activated (GtkWidget *item, +static void +thunar_shortcuts_view_editing_canceled (GtkCellRenderer *renderer, + ThunarShortcutsView *view) +{ + g_object_set (G_OBJECT (renderer), "editable", FALSE, NULL); + + g_signal_handlers_disconnect_by_func (G_OBJECT (renderer), + G_CALLBACK (thunar_shortcuts_view_editing_canceled), + view); +} + + + static void thunar_shortcuts_view_rename_activated (GtkWidget *item, ThunarShortcutsView *view) @@ -1341,6 +1356,10 @@ thunar_shortcuts_view_rename_activated (GtkWidget *item, /* make sure the text renderer is editable */ g_object_set (G_OBJECT (renderer), "editable", TRUE, NULL); + /* set up signals for the cell renderer */ + g_signal_connect (G_OBJECT (renderer), "editing-canceled", + G_CALLBACK (thunar_shortcuts_view_editing_canceled), view); + /* tell the tree view to start editing the given row */ gtk_tree_view_set_cursor_on_cell (GTK_TREE_VIEW (view), path, column, renderer, TRUE); @@ -1359,7 +1378,6 @@ thunar_shortcuts_view_renamed (GtkCellRenderer *renderer, ThunarShortcutsView *view) { GtkTreeModel *model; - GtkTreePath *path; GtkTreeIter iter; GtkTreeModel *child_model; GtkTreeIter child_iter; @@ -1374,11 +1392,6 @@ thunar_shortcuts_view_renamed (GtkCellRenderer *renderer, child_model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (model)); gtk_tree_model_filter_convert_iter_to_child_iter (GTK_TREE_MODEL_FILTER (model), &child_iter, &iter); thunar_shortcuts_model_rename (THUNAR_SHORTCUTS_MODEL (child_model), &child_iter, text); - - /* unset the cell focus and only focus the column to avoid the weird-looking double selection */ - path = gtk_tree_model_get_path (model, &iter); - gtk_tree_view_set_cursor (GTK_TREE_VIEW (view), path, gtk_tree_view_get_column (GTK_TREE_VIEW (view), 0), FALSE); - gtk_tree_path_free (path); } }