Don't flush if we're inside a begin_paint/end_paint pair.

2006-04-12  Anders Carlsson  <andersca@imendio.com>

        * 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.
This commit is contained in:
Anders Carlsson 2006-04-12 08:23:01 +00:00 committed by Anders Carlsson
parent e0e24d0313
commit 3d1e71073e
4 changed files with 28 additions and 1 deletions

View File

@ -1,3 +1,13 @@
2006-04-12 Anders Carlsson <andersca@imendio.com>
* 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 <mclasen@redhat.com>
* gtk/gtkuimanager.c (start_element_handler): Don't pass

View File

@ -1,3 +1,13 @@
2006-04-12 Anders Carlsson <andersca@imendio.com>
* 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 <mclasen@redhat.com>
* gtk/gtkuimanager.c (start_element_handler): Don't pass

View File

@ -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];

View File

@ -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