[gtk/matthiasc/for-master: 29/30] scrolledwindow: Fix swapping out child
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/matthiasc/for-master: 29/30] scrolledwindow: Fix swapping out child
- Date: Wed, 13 May 2020 21:27:36 +0000 (UTC)
commit 10be40a8b1c6028e209eed24b666a50361103dee
Author: Matthias Clasen <mclasen redhat com>
Date: Wed May 13 17:10:36 2020 -0400
scrolledwindow: Fix swapping out child
This was not working in the case that the existing child
is not a scrollable. It showed up as crashes of the
scrolling benchmark in gtk4-demo when switching examples.
gtk/gtkscrolledwindow.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
---
diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c
index f2b8493234..f1b23d87eb 100644
--- a/gtk/gtkscrolledwindow.c
+++ b/gtk/gtkscrolledwindow.c
@@ -4166,20 +4166,16 @@ gtk_scrolled_window_set_child (GtkScrolledWindow *scrolled_window,
if (priv->child)
{
- if (!priv->auto_added_viewport)
+ if (priv->auto_added_viewport)
{
- scrollable_child = priv->child;
- }
- else
- {
- scrollable_child = gtk_viewport_get_child (GTK_VIEWPORT (priv->child));
gtk_viewport_set_child (GTK_VIEWPORT (priv->child), NULL);
}
- g_object_set (scrollable_child,
+ g_object_set (priv->child,
"hadjustment", NULL,
"vadjustment", NULL,
NULL);
+
g_clear_pointer (&priv->child, gtk_widget_unparent);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]