diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp index 2441e8c8f3..f265937d06 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.cpp @@ -644,6 +644,8 @@ ViewProviderSketch::ViewProviderSketch() updateColorPropertiesVisibility(); pcSketchFacesToggle->addChild(pcSketchFaces); + + blockContextMenu = false; } ViewProviderSketch::~ViewProviderSketch() @@ -1141,6 +1143,7 @@ bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVe case STATUS_SKETCH_UseRubberBand: doBoxSelection(DoubleClick::prvCursorPos, cursorPos, viewer); rubberband->setWorking(false); + blockContextMenu = true; // use draw(false, false) to avoid solver geometry with outdated construction flags draw(false, false); @@ -1162,6 +1165,8 @@ bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVe // Right mouse button **************************************************** else if (Button == 2) { if (pressed) { + blockContextMenu = false; + // Do things depending on the mode of the user interaction switch (Mode) { case STATUS_NONE: { @@ -3714,6 +3719,8 @@ void ViewProviderSketch::setEditViewer(Gui::View3DInventorViewer* viewer, int Mo cameraSensor.setData(camSensorData); cameraSensor.setDeleteCallback(&ViewProviderSketch::camSensDeleteCB, camSensorData); cameraSensor.attach(viewer->getCamera()); + + blockContextMenu = false; } void ViewProviderSketch::unsetEditViewer(Gui::View3DInventorViewer* viewer) @@ -3727,6 +3734,8 @@ void ViewProviderSketch::unsetEditViewer(Gui::View3DInventorViewer* viewer) viewer->removeGraphicsItem(rubberband.get()); viewer->setEditing(false); viewer->setSelectionEnabled(true); + + blockContextMenu = false; } void ViewProviderSketch::camSensDeleteCB(void* data, SoSensor *s) @@ -4365,6 +4374,8 @@ bool ViewProviderSketch::isInEditMode() const } void ViewProviderSketch::generateContextMenu() { + if (blockContextMenu) return; + int selectedEdges = 0; int selectedLines = 0; int selectedConics = 0; diff --git a/src/Mod/Sketcher/Gui/ViewProviderSketch.h b/src/Mod/Sketcher/Gui/ViewProviderSketch.h index 4bfaf0a590..69be10135e 100644 --- a/src/Mod/Sketcher/Gui/ViewProviderSketch.h +++ b/src/Mod/Sketcher/Gui/ViewProviderSketch.h @@ -991,6 +991,8 @@ private: SoNodeSensor cameraSensor; int viewOrientationFactor; // stores if sketch viewed from front or back + + bool blockContextMenu; }; } // namespace SketcherGui