diff --git a/libs/tk/ydk/quartz/GdkQuartzView.c b/libs/tk/ydk/quartz/GdkQuartzView.c index 392ab2a856..cdd056881e 100644 --- a/libs/tk/ydk/quartz/GdkQuartzView.c +++ b/libs/tk/ydk/quartz/GdkQuartzView.c @@ -759,7 +759,13 @@ static int showInvalidation = 0; return; } - if (!impl->needs_display_region || gdk_quartz_get_use_cocoa_invalidation() || full_draw) { + if (full_draw) { + GdkRectangle r = { rect.origin.x, rect.origin.y, rect.size.width, rect.size.height }; + region = gdk_region_rectangle (&r); + if (impl->needs_display_region) { + gdk_region_destroy (impl->needs_display_region); + } + } else if (!impl->needs_display_region || gdk_quartz_get_use_cocoa_invalidation()) { gint nrects; GdkRectangle* rects; [self getRectsBeingDrawn: &drawn_rects count: &count];