PerformanceMeasure.Begin (PerformanceMeasure.Kind.Drawing);
IsDirty = true;
+ for (int i = 0; i < clipping.NumRectangles; i++)
+ ctx.Rectangle (clipping.GetRectangle (i));
+ ctx.ClipPreserve ();
+ ctx.Operator = Operator.Clear;
+ ctx.Fill ();
+ ctx.Operator = Operator.Over;
+
ctx.PushGroup ();
for (int i = GraphicTree.Count -1; i >= 0 ; i--){
if (clipping.Contains (p.Slot) == RegionOverlap.Out)
continue;
- ctx.Save ();
+ //ctx.Save ();
p.Paint (ref ctx);
- ctx.Restore ();
+ //ctx.Restore ();
}
if (DragAndDropOperation != null) {
ctx.PopGroupToSource ();
- for (int i = 0; i < clipping.NumRectangles; i++)
- ctx.Rectangle (clipping.GetRectangle (i));
+/* for (int i = 0; i < clipping.NumRectangles; i++)
+ ctx.Rectangle (clipping.GetRectangle (i));*/
+
- ctx.ClipPreserve ();
- ctx.Operator = Operator.Clear;
- ctx.Fill ();
- ctx.Operator = Operator.Over;
ctx.Paint ();
paintDisabled (ctx, Slot + Parent.ClientRectangle.Position);
} else {
Rectangle rb = Slot + Parent.ClientRectangle.Position;
- ctx.Save ();
+ //ctx.Save ();
ctx.Translate (rb.X, rb.Y);
if (!IsEnabled)
paintDisabled (ctx, Slot);
- ctx.Restore ();
+ ctx.Translate (-rb.X, -rb.Y);
+ //ctx.Restore ();
}
LastPaintedSlot = Slot;
}