diff --git a/ChangeLog b/ChangeLog index 1cdc427bf2..99934dd164 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-03-30 Federico Mena Quintero + + 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 1cdc427bf2..99934dd164 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +2005-03-30 Federico Mena Quintero + + 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 1cdc427bf2..99934dd164 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +2005-03-30 Federico Mena Quintero + + 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 cfb3f9fd4d..9359d39c98 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -7040,6 +7040,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); @@ -7048,9 +7049,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)