Sketcher: Cancel rubber band selection with RMB

Cleanup
This commit is contained in:
Bas Ruigrok
2025-08-23 13:54:33 +02:00
committed by Chris Hennes
parent 39329e547f
commit e469eb5ccb

View File

@@ -543,6 +543,7 @@ ViewProviderSketch::ViewProviderSketch()
, pObserver(std::make_unique<ViewProviderSketch::ParameterObserver>(*this))
, sketchHandler(nullptr)
, viewOrientationFactor(1)
, blockContextMenu(false)
{
PartGui::ViewProviderAttachExtension::initExtension(this);
PartGui::ViewProviderGridExtension::initExtension(this);
@@ -644,8 +645,6 @@ ViewProviderSketch::ViewProviderSketch()
updateColorPropertiesVisibility();
pcSketchFacesToggle->addChild(pcSketchFaces);
blockContextMenu = false;
}
ViewProviderSketch::~ViewProviderSketch()
@@ -1166,7 +1165,7 @@ bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVe
else if (Button == 2) {
if (pressed) {
blockContextMenu = false;
// Do things depending on the mode of the user interaction
switch (Mode) {
case STATUS_NONE: {
@@ -1186,7 +1185,18 @@ bool ViewProviderSketch::mouseButtonPressed(int Button, bool pressed, const SbVe
// Base::Console().log("start dragging, point:%d\n",this->DragPoint);
setSketchMode(STATUS_SELECT_Constraint);
}
break;
}
case STATUS_SKETCH_UseRubberBand:
// Cancel rubberband
rubberband->setWorking(false);
blockContextMenu = true;
// a redraw is required in order to clear the rubberband
draw(true, false);
const_cast<Gui::View3DInventorViewer*>(viewer)->redraw();
setSketchMode(STATUS_NONE);
return true;
default:
break;
}
@@ -4375,7 +4385,7 @@ bool ViewProviderSketch::isInEditMode() const
void ViewProviderSketch::generateContextMenu()
{
if (blockContextMenu) return;
int selectedEdges = 0;
int selectedLines = 0;
int selectedConics = 0;