diff --git a/libs/canvas.py b/libs/canvas.py index bee70368..3b5a3524 100644 --- a/libs/canvas.py +++ b/libs/canvas.py @@ -244,10 +244,7 @@ class Canvas(QWidget): self.current.addPoint(QPointF(maxX, minY)) self.current.addPoint(targetPos) self.current.addPoint(QPointF(minX, maxY)) - self.current.addPoint(initPos) - self.line[0] = self.current[-1] - if self.current.isClosed(): - self.finalise() + self.finalise() elif not self.outOfPixmap(pos): self.current = Shape() self.current.addPoint(pos) @@ -447,6 +444,12 @@ class Canvas(QWidget): def finalise(self): assert self.current + if self.current.points[0] == self.current.points[-1]: + self.current = None + self.drawingPolygon.emit(False) + self.update() + return + self.current.close() self.shapes.append(self.current) self.current = None diff --git a/libs/shape.py b/libs/shape.py index de366d27..165ef599 100644 --- a/libs/shape.py +++ b/libs/shape.py @@ -67,9 +67,7 @@ class Shape(object): return False def addPoint(self, point): - if self.points and point == self.points[0]: - self.close() - else: + if not self.reachMaxPoints(): self.points.append(point) def popPoint(self):