Browse Source

Fixes RadioButton rendering

Fixes CheckBox glyph rendering
pull/67/head
Nelson Carrillo 11 years ago
parent
commit
cd3dc55e54
  1. 24
      Cairo/Perspex.Cairo/Media/DrawingContext.cs

24
Cairo/Perspex.Cairo/Media/DrawingContext.cs

@ -118,27 +118,17 @@ namespace Perspex.Cairo.Media
{ {
var impl = geometry.PlatformImpl as StreamGeometryImpl; var impl = geometry.PlatformImpl as StreamGeometryImpl;
var clone = new Queue<GeometryOp>(impl.Operations); var clone = new Queue<GeometryOp>(impl.Operations);
bool useFill = false;
this.SetPen(pen);
this.SetBrush(brush);
using (var pop = this.PushTransform(impl.Transform)) using (var pop = this.PushTransform(impl.Transform))
{ {
while (clone.Count > 0) while (clone.Count > 0)
{ {
var current = clone.Dequeue(); var current = clone.Dequeue();
if (current is BeginOp) if (current is BeginOp)
{ {
var bo = current as BeginOp; var bo = current as BeginOp;
this.context.MoveTo(bo.Point.ToCairo()); this.context.MoveTo(bo.Point.ToCairo());
useFill = bo.IsFilled;
System.Diagnostics.Debug.WriteLine("Start");
} }
else if (current is LineToOp) else if (current is LineToOp)
{ {
@ -149,8 +139,6 @@ namespace Perspex.Cairo.Media
{ {
if (((EndOp)current).IsClosed) if (((EndOp)current).IsClosed)
this.context.ClosePath(); this.context.ClosePath();
System.Diagnostics.Debug.WriteLine("End");
} }
else if (current is CurveToOp) else if (current is CurveToOp)
{ {
@ -159,13 +147,17 @@ namespace Perspex.Cairo.Media
} }
} }
if (useFill) if (brush != null)
{ {
this.context.FillPreserve(); this.SetBrush(brush);
this.context.Fill();
} }
else
if (pen != null)
{ {
this.context.StrokePreserve(); this.SetPen(pen);
this.context.Stroke();
} }
} }
} }

Loading…
Cancel
Save