diff --git a/uppsrc/Painter/DrawOp.cpp b/uppsrc/Painter/DrawOp.cpp index e5e0aec70..9a07f8bfb 100644 --- a/uppsrc/Painter/DrawOp.cpp +++ b/uppsrc/Painter/DrawOp.cpp @@ -42,12 +42,16 @@ bool Painter::ClipoffOp(const Rect& r) bool Painter::ExcludeClipOp(const Rect& r) { + RectPath(Rect(-99999, -99999, 99999, r.top)); + RectPath(Rect(-99999, r.top, r.left, 99999)); + RectPath(Rect(r.right, r.top, 99999, 99999)); + RectPath(Rect(r.left, r.bottom, r.right, 99999)); + Clip(); return true; } bool Painter::IntersectClipOp(const Rect& r) { - return true; RectPath(r); Clip(); return true; diff --git a/uppsrc/Painter/Image.cpp b/uppsrc/Painter/Image.cpp index 7c6027a22..b2f3ab49b 100644 --- a/uppsrc/Painter/Image.cpp +++ b/uppsrc/Painter/Image.cpp @@ -176,6 +176,7 @@ struct PainterImageSpan : SpanSource { void BufferPainter::RenderImage(double width, const Image& image, const Xform2D& transsrc, dword flags) { + current = Null; if(image.GetWidth() == 0 || image.GetHeight() == 0) return; PainterImageSpan ss;