diff --git a/ChangeLog b/ChangeLog index 805988715d..8cbaa791c6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-11-13 Michael Natterer + + * app/widgets/gimpviewrenderer.c (gimp_view_renderer_draw): use + cairo_save()/cairo_restore() around calling the virtual function + instead of restoring the clipping area manually. + 2007-11-13 Michael Natterer * app/widgets/gimpviewrenderervectors.c diff --git a/app/widgets/gimpviewrenderer.c b/app/widgets/gimpviewrenderer.c index 3154201d4e..392237e9ed 100644 --- a/app/widgets/gimpviewrenderer.c +++ b/app/widgets/gimpviewrenderer.c @@ -606,8 +606,12 @@ gimp_view_renderer_draw (GimpViewRenderer *renderer, if (renderer->viewable) { + cairo_save (cr); + GIMP_VIEW_RENDERER_GET_CLASS (renderer)->draw (renderer, widget, cr, draw_area); + + cairo_restore (cr); } else { @@ -630,16 +634,6 @@ gimp_view_renderer_draw (GimpViewRenderer *renderer, gint height = renderer->height + renderer->border_width; gdouble x, y; - if (renderer->viewable) - { - /* reset clipping because the draw() implementation is - * allowed to do additional clipping - */ - cairo_reset_clip (cr); - gdk_cairo_rectangle (cr, &render_rect); - cairo_clip (cr); - } - cairo_set_line_width (cr, renderer->border_width); cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND); gimp_cairo_set_source_color (cr, &renderer->border_color);