forked from AuroraMiddleware/gtk
gtktreeview: Fix child access after TEST_EXPAND_ROW
In gtk_tree_view_build_tree with recurse=TRUE, the TEST_EXPAND_ROW signal might invalidate the child iterator. Getting the iterator after the signal (instead of before) fixes the issue. Fixes https://gitlab.com/inkscape/inkscape/-/issues/1879
This commit is contained in:
parent
90b737529d
commit
e35378ba37
@ -9622,13 +9622,13 @@ gtk_tree_view_build_tree (GtkTreeView *tree_view,
|
||||
else
|
||||
gtk_tree_path_next (path);
|
||||
|
||||
if (gtk_tree_model_iter_children (tree_view->priv->model, &child, iter))
|
||||
if (gtk_tree_model_iter_has_child (tree_view->priv->model, iter))
|
||||
{
|
||||
gboolean expand;
|
||||
|
||||
g_signal_emit (tree_view, tree_view_signals[TEST_EXPAND_ROW], 0, iter, path, &expand);
|
||||
|
||||
if (gtk_tree_model_iter_has_child (tree_view->priv->model, iter)
|
||||
if (gtk_tree_model_iter_children (tree_view->priv->model, &child, iter)
|
||||
&& !expand)
|
||||
{
|
||||
temp->children = _gtk_rbtree_new ();
|
||||
|
Loading…
Reference in New Issue
Block a user