diff --git a/ChangeLog b/ChangeLog index 17c2b79aa9..df0905cc2e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2006-04-12 Anders Carlsson + + * gdk/quartz/gdkdrawable-quartz.c: + (_gdk_quartz_drawable_release_context): + Don't flush if we're inside a begin_paint/end_paint pair. + + * gdk/quartz/gdkwindow-quartz.c: + (gdk_window_impl_quartz_end_paint): + Free clip region here. + 2006-04-12 Matthias Clasen * gtk/gtkuimanager.c (start_element_handler): Don't pass diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 17c2b79aa9..df0905cc2e 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,13 @@ +2006-04-12 Anders Carlsson + + * gdk/quartz/gdkdrawable-quartz.c: + (_gdk_quartz_drawable_release_context): + Don't flush if we're inside a begin_paint/end_paint pair. + + * gdk/quartz/gdkwindow-quartz.c: + (gdk_window_impl_quartz_end_paint): + Free clip region here. + 2006-04-12 Matthias Clasen * gtk/gtkuimanager.c (start_element_handler): Don't pass diff --git a/gdk/quartz/gdkdrawable-quartz.c b/gdk/quartz/gdkdrawable-quartz.c index 6e5cdd8525..617daf962e 100644 --- a/gdk/quartz/gdkdrawable-quartz.c +++ b/gdk/quartz/gdkdrawable-quartz.c @@ -654,7 +654,8 @@ _gdk_quartz_drawable_release_context (GdkDrawable *drawable, CGContextRef contex CGContextRestoreGState (context); CGContextSetAllowsAntialiasing (context, TRUE); - if (impl->in_paint_rect_count == 0) + if (impl->in_paint_rect_count == 0 && + impl->begin_paint_count == 0) CGContextFlush (context); [impl->view unlockFocus]; diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c index 92c915c9d3..e94ebfe7d8 100644 --- a/gdk/quartz/gdkwindow-quartz.c +++ b/gdk/quartz/gdkwindow-quartz.c @@ -172,6 +172,12 @@ gdk_window_impl_quartz_end_paint (GdkPaintable *paintable) GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (paintable); impl->begin_paint_count --; + + if (impl->begin_paint_count == 0) + { + gdk_region_destroy (impl->paint_clip_region); + impl->paint_clip_region = NULL; + } } static void