mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-17 23:50:16 +00:00
listbox: Use widget insert API instead of fiddling with CSS nodes
This commit is contained in:
parent
945b844b7c
commit
f26359db13
@ -2583,26 +2583,6 @@ gtk_list_box_prepend (GtkListBox *box,
|
|||||||
gtk_list_box_insert (box, child, 0);
|
gtk_list_box_insert (box, child, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gtk_list_box_insert_css_node (GtkListBox *box,
|
|
||||||
GtkWidget *child,
|
|
||||||
GSequenceIter *iter)
|
|
||||||
{
|
|
||||||
GSequenceIter *prev_iter;
|
|
||||||
GtkCssNode *sibling;
|
|
||||||
|
|
||||||
prev_iter = g_sequence_iter_prev (iter);
|
|
||||||
|
|
||||||
if (prev_iter != iter)
|
|
||||||
sibling = gtk_widget_get_css_node (g_sequence_get (prev_iter));
|
|
||||||
else
|
|
||||||
sibling = NULL;
|
|
||||||
|
|
||||||
gtk_css_node_insert_after (gtk_widget_get_css_node (GTK_WIDGET (box)),
|
|
||||||
gtk_widget_get_css_node (child),
|
|
||||||
sibling);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gtk_list_box_insert:
|
* gtk_list_box_insert:
|
||||||
* @box: a #GtkListBox
|
* @box: a #GtkListBox
|
||||||
@ -2623,6 +2603,7 @@ gtk_list_box_insert (GtkListBox *box,
|
|||||||
{
|
{
|
||||||
GtkListBoxPrivate *priv = BOX_PRIV (box);
|
GtkListBoxPrivate *priv = BOX_PRIV (box);
|
||||||
GtkListBoxRow *row;
|
GtkListBoxRow *row;
|
||||||
|
GSequenceIter *prev = NULL;
|
||||||
GSequenceIter *iter = NULL;
|
GSequenceIter *iter = NULL;
|
||||||
|
|
||||||
g_return_if_fail (GTK_IS_LIST_BOX (box));
|
g_return_if_fail (GTK_IS_LIST_BOX (box));
|
||||||
@ -2651,10 +2632,11 @@ gtk_list_box_insert (GtkListBox *box,
|
|||||||
iter = g_sequence_insert_before (current_iter, row);
|
iter = g_sequence_insert_before (current_iter, row);
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_list_box_insert_css_node (box, GTK_WIDGET (row), iter);
|
|
||||||
|
|
||||||
ROW_PRIV (row)->iter = iter;
|
ROW_PRIV (row)->iter = iter;
|
||||||
gtk_widget_set_parent (GTK_WIDGET (row), GTK_WIDGET (box));
|
prev = g_sequence_iter_prev (iter);
|
||||||
|
gtk_widget_insert_after (GTK_WIDGET (row), GTK_WIDGET (box),
|
||||||
|
prev != iter ? g_sequence_get (prev) : NULL);
|
||||||
|
|
||||||
gtk_widget_set_child_visible (GTK_WIDGET (row), TRUE);
|
gtk_widget_set_child_visible (GTK_WIDGET (row), TRUE);
|
||||||
ROW_PRIV (row)->visible = gtk_widget_get_visible (GTK_WIDGET (row));
|
ROW_PRIV (row)->visible = gtk_widget_get_visible (GTK_WIDGET (row));
|
||||||
if (ROW_PRIV (row)->visible)
|
if (ROW_PRIV (row)->visible)
|
||||||
|
Loading…
Reference in New Issue
Block a user