diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index dfd625495..56b191936 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -258,8 +258,7 @@ void ViewProviderSketch::activateHandler(DrawSketchHandler *newHandler) edit->sketchHandler->activated(this); } -/// removes the active handler -void ViewProviderSketch::purgeHandler(void) +void ViewProviderSketch::deactivateHandler() { assert(edit); assert(edit->sketchHandler != 0); @@ -267,6 +266,12 @@ void ViewProviderSketch::purgeHandler(void) delete(edit->sketchHandler); edit->sketchHandler = 0; Mode = STATUS_NONE; +} + +/// removes the active handler +void ViewProviderSketch::purgeHandler(void) +{ + deactivateHandler(); // ensure that we are in sketch only selection mode Gui::MDIView *mdi = Gui::Application::Instance->activeDocument()->getActiveView(); @@ -3240,7 +3245,7 @@ void ViewProviderSketch::unsetEdit(int ModNum) pcRoot->removeChild(edit->EditRoot); if (edit->sketchHandler) - purgeHandler(); + deactivateHandler(); delete edit; edit = 0; diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index e699dd269..553c99451 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -201,6 +201,7 @@ protected: virtual void unsetEdit(int ModNum); virtual void setEditViewer(Gui::View3DInventorViewer*, int ModNum); virtual void unsetEditViewer(Gui::View3DInventorViewer*); + void deactivateHandler(); /// set up and solve the sketch void solveSketch(void); /// helper to detect whether the picked point lies on the sketch