@@ -15,6 +15,10 @@ function trace(ctx, path) {
1515 if (i <= 0) return;
1616 ctx.moveTo(points[i]._0, points[i]._1);
1717 while (i--) { ctx.lineTo(points[i]._0, points[i]._1); }
18+ if (path.closed) {
19+ i = points.length - 1;
20+ ctx.lineTo(points[i]._0, points[i]._1);
21+ }
1822}
1923
2024function line(ctx,style,path) {
@@ -118,8 +122,12 @@ function renderForm(redo,ctx,form) {
118122 switch(f.ctor) {
119123 case 'FPath' : drawLine(ctx, f._0, f._1); break;
120124 case 'FShape':
121− if (form.form._0.ctor === 'Left') drawLine(ctx, f._0._0, f._1);
122− else drawShape(redo, ctx, f._0._0, f._1);
125+ if (f._0.ctor === 'Left') {
126+ f._1.closed = true;
127+ drawLine(ctx, f._0._0, f._1);
128+ } else {
129+ drawShape(redo, ctx, f._0._0, f._1);
130+ }
123131 break;
124132 case 'FImage': drawImage(redo, ctx, f); break;
125133 case 'FGroup': renderForms(redo, ctx, f._0); break;