diff --git a/ChangeLog b/ChangeLog index 8b72d3cb3b..fce692ad17 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2005-03-30 Federico Mena Quintero + + Merged from gtk-2-6: + + Fix #170755: + + * gtk/gtktreeview.c (gtk_tree_view_row_changed): Only stop editing + if the row which changed is the same as the row being edited. + 2005-03-30 Matthias Clasen * gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search): diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 8b72d3cb3b..fce692ad17 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +2005-03-30 Federico Mena Quintero + + Merged from gtk-2-6: + + Fix #170755: + + * gtk/gtktreeview.c (gtk_tree_view_row_changed): Only stop editing + if the row which changed is the same as the row being edited. + 2005-03-30 Matthias Clasen * gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search): diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 8b72d3cb3b..fce692ad17 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +2005-03-30 Federico Mena Quintero + + Merged from gtk-2-6: + + Fix #170755: + + * gtk/gtktreeview.c (gtk_tree_view_row_changed): Only stop editing + if the row which changed is the same as the row being edited. + 2005-03-30 Matthias Clasen * gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search): diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index d85df0b050..3086073778 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -7042,6 +7042,7 @@ gtk_tree_view_row_changed (GtkTreeModel *model, gboolean free_path = FALSE; gint vertical_separator; GList *list; + GtkTreePath *cursor_path; g_return_if_fail (path != NULL || iter != NULL); @@ -7050,9 +7051,18 @@ gtk_tree_view_row_changed (GtkTreeModel *model, */ return; - if (tree_view->priv->edited_column) + if (tree_view->priv->cursor != NULL) + cursor_path = gtk_tree_row_reference_get_path (tree_view->priv->cursor); + else + cursor_path = NULL; + + if (tree_view->priv->edited_column && + (cursor_path == NULL || gtk_tree_path_compare (cursor_path, path) == 0)) gtk_tree_view_stop_editing (tree_view, TRUE); + if (cursor_path != NULL) + gtk_tree_path_free (cursor_path); + gtk_widget_style_get (GTK_WIDGET (data), "vertical-separator", &vertical_separator, NULL); if (path == NULL)