@@ -15,6 +15,10 @@ function trace(ctx, path) {
15 if (i <= 0) return;
15 if (i <= 0) return;
16 ctx.moveTo(points[i]._0, points[i]._1);
16 ctx.moveTo(points[i]._0, points[i]._1);
17 while (i--) { ctx.lineTo(points[i]._0, points[i]._1); }
17 while (i--) { ctx.lineTo(points[i]._0, points[i]._1); }
19+ i = points.length - 1;
20+ ctx.lineTo(points[i]._0, points[i]._1);
20function line(ctx,style,path) {
24function line(ctx,style,path) {
@@ -118,8 +122,12 @@ function renderForm(redo,ctx,form) {
118 switch(f.ctor) {
122 switch(f.ctor) {
119 case 'FPath' : drawLine(ctx, f._0, f._1); break;
123 case 'FPath' : drawLine(ctx, f._0, f._1); break;
120 case 'FShape':
124 case 'FShape':
125+ if (f._0.ctor === 'Left') {
121− if (form.form._0.ctor === 'Left') drawLine(ctx, f._0._0, f._1);
127+ drawLine(ctx, f._0._0, f._1);
122− else drawShape(redo, ctx, f._0._0, f._1);
129+ drawShape(redo, ctx, f._0._0, f._1);
124 case 'FImage': drawImage(redo, ctx, f); break;
132 case 'FImage': drawImage(redo, ctx, f); break;
125 case 'FGroup': renderForms(redo, ctx, f._0); break;
133 case 'FGroup': renderForms(redo, ctx, f._0); break;