diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index a3dee23a0c..d61dff9361 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -5328,12 +5328,20 @@ draw_text (cairo_t *cr, gtk_style_context_restore (context); if (GTK_TEXT_VIEW_GET_CLASS (text_view)->draw_layer != NULL) - GTK_TEXT_VIEW_GET_CLASS (text_view)->draw_layer (text_view, GTK_TEXT_VIEW_LAYER_BELOW, cr); + { + cairo_save (cr); + GTK_TEXT_VIEW_GET_CLASS (text_view)->draw_layer (text_view, GTK_TEXT_VIEW_LAYER_BELOW, cr); + cairo_restore (cr); + } gtk_text_view_paint (widget, cr); if (GTK_TEXT_VIEW_GET_CLASS (text_view)->draw_layer != NULL) - GTK_TEXT_VIEW_GET_CLASS (text_view)->draw_layer (text_view, GTK_TEXT_VIEW_LAYER_ABOVE, cr); + { + cairo_save (cr); + GTK_TEXT_VIEW_GET_CLASS (text_view)->draw_layer (text_view, GTK_TEXT_VIEW_LAYER_ABOVE, cr); + cairo_restore (cr); + } } static void