diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c index 6c65c4be24..a7dfbf87fc 100644 --- a/gtk/gtkviewport.c +++ b/gtk/gtkviewport.c @@ -773,34 +773,31 @@ static gint gtk_viewport_draw (GtkWidget *widget, cairo_t *cr) { - if (gtk_widget_is_drawable (widget)) + GtkViewport *viewport = GTK_VIEWPORT (widget); + GtkViewportPrivate *priv = viewport->priv; + int x, y, w, h; + + if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget))) { - GtkViewport *viewport = GTK_VIEWPORT (widget); - GtkViewportPrivate *priv = viewport->priv; - int x, y, w, h; + gdk_drawable_get_size (gtk_widget_get_window (widget), + &w, &h); + gtk_cairo_paint_shadow (gtk_widget_get_style (widget), + cr, + GTK_STATE_NORMAL, priv->shadow_type, + widget, "viewport", + 0, 0, w, h); + } + + if (gtk_cairo_should_draw_window (cr, priv->bin_window)) + { + gdk_window_get_position (priv->bin_window, &x, &y); + gdk_drawable_get_size (priv->bin_window, &w, &h); + gtk_cairo_paint_flat_box (gtk_widget_get_style (widget), cr, + GTK_STATE_NORMAL, GTK_SHADOW_NONE, + widget, "viewportbin", + x, y, w, h); - if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget))) - { - gdk_drawable_get_size (gtk_widget_get_window (widget), - &w, &h); - gtk_cairo_paint_shadow (gtk_widget_get_style (widget), - cr, - GTK_STATE_NORMAL, priv->shadow_type, - widget, "viewport", - 0, 0, w, h); - } - - if (gtk_cairo_should_draw_window (cr, priv->bin_window)) - { - gdk_window_get_position (priv->bin_window, &x, &y); - gdk_drawable_get_size (priv->bin_window, &w, &h); - gtk_cairo_paint_flat_box (gtk_widget_get_style (widget), cr, - GTK_STATE_NORMAL, GTK_SHADOW_NONE, - widget, "viewportbin", - x, y, w, h); - - GTK_WIDGET_CLASS (gtk_viewport_parent_class)->draw (widget, cr); - } + GTK_WIDGET_CLASS (gtk_viewport_parent_class)->draw (widget, cr); } return FALSE;