[gtk+/wip/baedert/drawing] listbox: Remove rows directly when binding model
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/drawing] listbox: Remove rows directly when binding model
- Date: Wed, 24 May 2017 08:21:55 +0000 (UTC)
commit ae0d0df2c59ef794ffd8dbfb627fc49bd0431ebc
Author: Timm Bäder <mail baedert org>
Date: Wed May 24 10:00:15 2017 +0200
listbox: Remove rows directly when binding model
Instead of hopping through 7 different functions to do that, just
remove all rows directly. This also mean we'll only remove rows and not
other children that've been added like placeholders.
gtk/gtklistbox.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtklistbox.c b/gtk/gtklistbox.c
index 17ab050..a1e809c 100644
--- a/gtk/gtklistbox.c
+++ b/gtk/gtklistbox.c
@@ -3742,6 +3742,7 @@ gtk_list_box_bind_model (GtkListBox *box,
GDestroyNotify user_data_free_func)
{
GtkListBoxPrivate *priv = BOX_PRIV (box);
+ GSequenceIter *iter;
g_return_if_fail (GTK_IS_LIST_BOX (box));
g_return_if_fail (model == NULL || G_IS_LIST_MODEL (model));
@@ -3756,7 +3757,14 @@ gtk_list_box_bind_model (GtkListBox *box,
g_clear_object (&priv->bound_model);
}
- gtk_list_box_forall (GTK_CONTAINER (box), (GtkCallback) gtk_widget_destroy, NULL);
+ iter = g_sequence_get_begin_iter (priv->children);
+ while (!g_sequence_iter_is_end (iter))
+ {
+ GtkWidget *row = g_sequence_get (iter);
+ iter = g_sequence_iter_next (iter);
+ gtk_list_box_remove (GTK_CONTAINER (box), row);
+ }
+
if (model == NULL)
return;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]