diff options
Diffstat (limited to 'gtk/gtklayout.c')
-rw-r--r-- | gtk/gtklayout.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gtk/gtklayout.c b/gtk/gtklayout.c index 3948fb0fd7..73831f8f43 100644 --- a/gtk/gtklayout.c +++ b/gtk/gtklayout.c @@ -101,6 +101,8 @@ static void gtk_layout_allocate_child (GtkLayout *layout, GtkLayoutChild *child); static void gtk_layout_adjustment_changed (GtkAdjustment *adjustment, GtkLayout *layout); +static void gtk_layout_style_set (GtkWidget *widget, + GtkStyle *old_style); static GtkWidgetClass *parent_class = NULL; @@ -630,6 +632,7 @@ gtk_layout_class_init (GtkLayoutClass *class) widget_class->size_request = gtk_layout_size_request; widget_class->size_allocate = gtk_layout_size_allocate; widget_class->expose_event = gtk_layout_expose; + widget_class->style_set = gtk_layout_style_set; container_class->remove = gtk_layout_remove; container_class->forall = gtk_layout_forall; @@ -834,6 +837,18 @@ gtk_layout_realize (GtkWidget *widget) } } +static void +gtk_layout_style_set (GtkWidget *widget, GtkStyle *old_style) +{ + if (GTK_WIDGET_CLASS (parent_class)->style_set) + (* GTK_WIDGET_CLASS (parent_class)->style_set) (widget, old_style); + + if (GTK_WIDGET_REALIZED (widget)) + { + gtk_style_set_background (widget->style, GTK_LAYOUT (widget)->bin_window, GTK_STATE_NORMAL); + } +} + static void gtk_layout_map (GtkWidget *widget) { |