[gtk+/wip/baedert/progressbar: 16/19] container: Use gtk_container_forall less
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/progressbar: 16/19] container: Use gtk_container_forall less
- Date: Mon, 24 Apr 2017 19:51:04 +0000 (UTC)
commit 9c725f7d7e9acc342772f456019635cc10ba04e6
Author: Timm Bäder <mail baedert org>
Date: Mon Apr 24 18:12:03 2017 +0200
container: Use gtk_container_forall less
Just iterate over the child widgets directly and produce a much nicer
stack trace when debugging.
gtk/gtkcontainer.c | 30 +++++++++++++-----------------
1 files changed, 13 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtkcontainer.c b/gtk/gtkcontainer.c
index 2670fb8..e86489f 100644
--- a/gtk/gtkcontainer.c
+++ b/gtk/gtkcontainer.c
@@ -3014,23 +3014,15 @@ gtk_container_draw (GtkWidget *widget,
}
static void
-gtk_container_snapshot_forall (GtkWidget *child,
- gpointer snapshot)
-{
- gtk_widget_snapshot_child (_gtk_widget_get_parent (child),
- child,
- snapshot);
-}
-
-static void
gtk_container_snapshot (GtkWidget *widget,
GtkSnapshot *snapshot)
{
- GtkContainer *container = GTK_CONTAINER (widget);
+ GtkWidget *child;
- gtk_container_forall (container,
- gtk_container_snapshot_forall,
- snapshot);
+ for (child = _gtk_widget_get_first_child (widget);
+ child != NULL;
+ child = _gtk_widget_get_next_sibling (child))
+ gtk_widget_snapshot_child (widget, child, snapshot);
}
static gboolean
@@ -3045,10 +3037,9 @@ gtk_container_should_propagate_draw (GtkContainer *container,
}
static void
-union_with_clip (GtkWidget *widget,
- gpointer data)
+union_with_clip (GtkWidget *widget,
+ GtkAllocation *clip)
{
- GdkRectangle *clip = data;
GtkAllocation widget_clip;
if (!gtk_widget_is_visible (widget) ||
@@ -3067,9 +3058,14 @@ void
gtk_container_get_children_clip (GtkContainer *container,
GtkAllocation *out_clip)
{
+ GtkWidget *child;
+
memset (out_clip, 0, sizeof (GtkAllocation));
- gtk_container_forall (container, union_with_clip, out_clip);
+ for (child = _gtk_widget_get_first_child (GTK_WIDGET (container));
+ child != NULL;
+ child = _gtk_widget_get_next_sibling (child))
+ union_with_clip (child, out_clip);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]