+ if (aProcessor) {
+ ModuleBase_ISelection* aSelection = aWorkshop->selection();
+ QList<ModuleBase_ViewerPrsPtr> aPreSelected = aSelection->getHighlighted();
+ if (MyModeByDrag && !aPreSelected.empty() && !isEditing)
+ aProcessor->setPreSelection(aPreSelected.first(), theWnd, theEvent);
+ else
+ aProcessor->mouseReleased(theWnd, theEvent);
+ }
+ if (MyModeByDrag && aOp) {
+ aViewer->enableMultiselection(true);
+ QString aOpId = aOp->id();
+ if (aOpId == "Sketch")
+ return;
+ QPoint aPnt(theEvent->x(), theEvent->y());
+ anActiveWidget = getActiveWidget();
+ if ((aPnt == myMousePoint) && anActiveWidget) {
+ aOp->abort();
+ return;
+ }
+ bool aCanRestart = !anActiveWidget && !isEditing;
+ if (aCanRestart) {
+ module()->launchOperation(aOpId, true);
+ }
+ }