diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.c b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.c index cb6c662..e14826d 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.c +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.c @@ -292,6 +292,7 @@ static void swt_fixed_size_allocate (GtkWidget *widget, GtkAllocation *allocatio static void swt_fixed_add (GtkContainer *container, GtkWidget *widget); static void swt_fixed_remove (GtkContainer *container, GtkWidget *widget); static void swt_fixed_forall (GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data); +static gboolean swt_fixed_draw (GtkWidget *widget, cairo_t *cr); G_DEFINE_TYPE_WITH_CODE (SwtFixed, swt_fixed, GTK_TYPE_CONTAINER, G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE, NULL)) @@ -317,6 +318,7 @@ static void swt_fixed_class_init (SwtFixedClass *class) { widget_class->get_preferred_width = swt_fixed_get_preferred_width; widget_class->get_preferred_height = swt_fixed_get_preferred_height; widget_class->size_allocate = swt_fixed_size_allocate; + widget_class->draw = swt_fixed_draw; /* Container implementation */ container_class->add = swt_fixed_add; @@ -636,4 +638,18 @@ static void swt_fixed_forall (GtkContainer *container, gboolean include_internal } } +static gboolean swt_fixed_draw (GtkWidget *widget, cairo_t *cr) { + SwtFixed *fixed = SWT_FIXED (widget); + SwtFixedPrivate *priv = fixed->priv; + SwtFixedChild *child; + GList *list; + + for (list = priv->children; list; list = list->next) { + child = list->data; + gtk_container_propagate_draw (GTK_CONTAINER (fixed), child->widget, cr); + } + + return FALSE; +} + #endif