summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@imendio.com>2006-04-12 08:23:01 +0000
committerAnders Carlsson <andersca@src.gnome.org>2006-04-12 08:23:01 +0000
commit3d1e71073edcecc947696cdb08a77dce0fdfa60e (patch)
treeefe3ab451ca50c1947599aa84d32cd5f1bf1c78f /gdk
parente0e24d0313f515e7c10dbd7715f6ee31e79f2b64 (diff)
downloadgtk+-3d1e71073edcecc947696cdb08a77dce0fdfa60e.tar.gz
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.
Diffstat (limited to 'gdk')
-rw-r--r--gdk/quartz/gdkdrawable-quartz.c3
-rw-r--r--gdk/quartz/gdkwindow-quartz.c6
2 files changed, 8 insertions, 1 deletions
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