[gtk/bin-removal: 9/14] widget: Allow resetting layout manager types



commit 986c6982f8c45d8bc9c943fba37bd87f1656338f
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat May 2 10:27:11 2020 -0400

    widget: Allow resetting layout manager types
    
    This is necessary to let a subclass use size_allocate
    when the parent class uses a layout manager. This will
    be relevant for GtkCheckButton.

 gtk/gtkwidget.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 8ee76a263d..cd86890f60 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -2366,7 +2366,7 @@ gtk_widget_init (GTypeInstance *instance, gpointer g_class)
     gtk_shortcut_manager_create_controllers (widget);
 
   layout_manager_type = gtk_widget_class_get_layout_manager_type (g_class);
-  if (layout_manager_type != G_TYPE_INVALID)
+  if (g_type_is_a (layout_manager_type, GTK_TYPE_LAYOUT_MANAGER))
     gtk_widget_set_layout_manager (widget, g_object_new (layout_manager_type, NULL));
 
   if (g_list_model_get_n_items (G_LIST_MODEL (GTK_WIDGET_CLASS (g_class)->priv->shortcuts)) > 0)
@@ -12230,7 +12230,7 @@ gtk_widget_class_set_layout_manager_type (GtkWidgetClass *widget_class,
   GtkWidgetClassPrivate *priv;
 
   g_return_if_fail (GTK_IS_WIDGET_CLASS (widget_class));
-  g_return_if_fail (g_type_is_a (type, GTK_TYPE_LAYOUT_MANAGER));
+  g_return_if_fail (type == G_TYPE_NONE || g_type_is_a (type, GTK_TYPE_LAYOUT_MANAGER));
 
   priv = widget_class->priv;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]