scrolledwindow: Properly remove scrollbars
authorTimm Bäder <mail@baedert.org>
Sat, 27 May 2017 07:47:56 +0000 (09:47 +0200)
committerDaniel Boles <dboles@src.gnome.org>
Thu, 31 Aug 2017 21:59:40 +0000 (22:59 +0100)
Instead of keeping an extra ref, then unparent+destroy+unref, don't keep
an extra ref and just unparent the scrollbar when appropriate.

gtk/gtkscrolledwindow.c

index 400c542b945c593715a0b21c3c33507b5aba518d..83044f92ce8fc7ec69acaf8b2e62a4a1aeebacb9 100644 (file)
@@ -2246,7 +2246,6 @@ gtk_scrolled_window_set_hadjustment (GtkScrolledWindow *scrolled_window,
       priv->hscrollbar = gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, hadjustment);
 
       gtk_widget_set_parent (priv->hscrollbar, GTK_WIDGET (scrolled_window));
-      g_object_ref (priv->hscrollbar);
       gtk_widget_show (priv->hscrollbar);
       update_scrollbar_positions (scrolled_window);
     }
@@ -2314,7 +2313,6 @@ gtk_scrolled_window_set_vadjustment (GtkScrolledWindow *scrolled_window,
       priv->vscrollbar = gtk_scrollbar_new (GTK_ORIENTATION_VERTICAL, vadjustment);
 
       gtk_widget_set_parent (priv->vscrollbar, GTK_WIDGET (scrolled_window));
-      g_object_ref (priv->vscrollbar);
       gtk_widget_show (priv->vscrollbar);
       update_scrollbar_positions (scrolled_window);
     }
@@ -2765,8 +2763,6 @@ gtk_scrolled_window_destroy (GtkWidget *widget)
                                            gtk_scrolled_window_adjustment_changed,
                                            scrolled_window);
       gtk_widget_unparent (priv->hscrollbar);
-      gtk_widget_destroy (priv->hscrollbar);
-      g_object_unref (priv->hscrollbar);
       priv->hscrollbar = NULL;
     }
   if (priv->vscrollbar)
@@ -2775,8 +2771,6 @@ gtk_scrolled_window_destroy (GtkWidget *widget)
                                            gtk_scrolled_window_adjustment_changed,
                                            scrolled_window);
       gtk_widget_unparent (priv->vscrollbar);
-      gtk_widget_destroy (priv->vscrollbar);
-      g_object_unref (priv->vscrollbar);
       priv->vscrollbar = NULL;
     }