diff --git a/src/Mod/Draft/draftguitools/gui_lines.py b/src/Mod/Draft/draftguitools/gui_lines.py index 8286d65742..4fbd8232ff 100644 --- a/src/Mod/Draft/draftguitools/gui_lines.py +++ b/src/Mod/Draft/draftguitools/gui_lines.py @@ -95,12 +95,19 @@ class Line(gui_base_original.Creator): """ if arg["Type"] == "SoKeyboardEvent" and arg["Key"] == "ESCAPE": self.finish() - elif arg["Type"] == "SoLocation2Event": + return + if arg["Type"] == "SoLocation2Event": self.point, ctrlPoint, info = gui_tool_utils.getPoint(self, arg) gui_tool_utils.redraw3DView() - elif (arg["Type"] == "SoMouseButtonEvent" - and arg["State"] == "DOWN" - and arg["Button"] == "BUTTON1"): + return + if arg["Type"] != "SoMouseButtonEvent": + return + if arg["State"] == "UP": + self.obj.ViewObject.Selectable = True + return + if arg["State"] == "DOWN" and arg["Button"] == "BUTTON1": + # Stop self.obj from being selected to avoid its display in the tree: + self.obj.ViewObject.Selectable = False if arg["Position"] == self.pos: self.finish(cont=None) return @@ -219,6 +226,7 @@ class Line(gui_base_original.Creator): def drawSegment(self, point): """Draws new line segment.""" + import Part if self.planetrack and self.node: self.planetrack.set(self.node[-1]) @@ -229,6 +237,7 @@ class Line(gui_base_original.Creator): newseg = Part.LineSegment(last, point).toShape() self.obj.Shape = newseg self.obj.ViewObject.Visibility = True + self.obj.ViewObject.ShowInTree = False if self.isWire: _toolmsg(translate("draft", "Pick next point")) else: @@ -238,6 +247,7 @@ class Line(gui_base_original.Creator): newseg = Part.LineSegment(last, point).toShape() newshape = currentshape.fuse(newseg) self.obj.Shape = newshape + _toolmsg(translate("draft", "Pick next point")) def wipe(self): @@ -245,6 +255,7 @@ class Line(gui_base_original.Creator): if len(self.node) > 1: # self.obj.Shape.nullify() # For some reason this fails self.obj.ViewObject.Visibility = False + self.obj.ViewObject.ShowInTree = False self.node = [self.node[-1]] if self.planetrack: self.planetrack.set(self.node[0])