X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FOCCViewer%2FOCCViewer_ViewModel.cxx;fp=src%2FOCCViewer%2FOCCViewer_ViewModel.cxx;h=b12f6b6c62bd861c56af46aa4292a27e23b02a6a;hb=966a6370e93aa90a8d70d4a970c54df23961e1bc;hp=7a15bb745e8900a2e06efeba635d48b8981dfbed;hpb=7d93c764f1cd3fbbe7db561b2e4b0bafa10bc0d4;p=modules%2Fgui.git diff --git a/src/OCCViewer/OCCViewer_ViewModel.cxx b/src/OCCViewer/OCCViewer_ViewModel.cxx index 7a15bb745..b12f6b6c6 100644 --- a/src/OCCViewer/OCCViewer_ViewModel.cxx +++ b/src/OCCViewer/OCCViewer_ViewModel.cxx @@ -21,7 +21,6 @@ // #include "OCCViewer_ViewModel.h" -#include "OCCViewer.h" #include "OCCViewer_ViewFrame.h" #include "OCCViewer_VService.h" #include "OCCViewer_ViewPort3d.h" @@ -131,7 +130,8 @@ OCCViewer_Viewer::OCCViewer_Viewer( bool DisplayTrihedron) myIsUseLocalSelection(false), #endif myClippingDlg (NULL), - myFitter(0) + myFitter(0), + mySelectionDone(false) { // init CasCade viewers myV3dViewer = OCCViewer_VService::CreateViewer( TCollection_ExtendedString("Viewer3d").ToExtString() ); @@ -378,8 +378,8 @@ void OCCViewer_Viewer::onMouseRelease(SUIT_ViewWindow* theWindow, QMouseEvent* t myEndPnt.setX(theEvent->x()); myEndPnt.setY(theEvent->y()); bool aHasShift = (theEvent->modifiers() & Qt::ShiftModifier); - - if (myStartPnt == myEndPnt) + // In case of small tremor of a mouse pointer, consider it as a click + if ( !OCCViewer::overThreshold( QRect( myStartPnt, myEndPnt ) ) && !mySelectionDone) { if (!aHasShift) { myAISContext->ClearCurrents( false ); @@ -396,7 +396,10 @@ void OCCViewer_Viewer::onMouseRelease(SUIT_ViewWindow* theWindow, QMouseEvent* t myAISContext->ShiftSelect( Standard_True ); else myAISContext->Select( Standard_True ); + emit selectionChanged(); } + mySelectionDone = false; + //else //{ // if (aHasShift && myMultiSelectionEnabled) @@ -422,7 +425,6 @@ void OCCViewer_Viewer::onMouseRelease(SUIT_ViewWindow* theWindow, QMouseEvent* t // myAISContext->UpdateCurrentViewer(); //} - emit selectionChanged(); } /*!