]> SALOME platform Git repositories - modules/gui.git/blobdiff - src/GLViewer/GLViewer_Viewer.cxx
Salome HOME
Update copyrights
[modules/gui.git] / src / GLViewer / GLViewer_Viewer.cxx
index 60efe28ee7c06aebd36c69b004b0881f403ea2f8..1bb4b87514be57745ef0f8968c2158ec76697324 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -654,10 +654,13 @@ bool GLViewer_ViewTransformer::eventFilter( QObject* o, QEvent* e )
             TransformState state = EnTrain;
             QMouseEvent* me = ( QMouseEvent* )e;
 
-            myButtonState = me->modifiers();
+            myButtonState = me->buttons();
             if ( e->type() == QEvent::MouseButtonPress )
                 myButtonState |= me->button();  /* add pressed button */
 
+            if ( e->type() == QEvent::MouseButtonRelease )
+                myButtonState |= me->button();  /* add release button */
+
             int mouseOnlyState = ( myButtonState & ( Qt::LeftButton | Qt::MidButton | Qt::RightButton ) );
             if ( myStart.isNull() )
             {
@@ -666,7 +669,7 @@ bool GLViewer_ViewTransformer::eventFilter( QObject* o, QEvent* e )
                 myMajorBtn = mouseOnlyState;
             }
 
-            if ( e->type() == QEvent::MouseButtonRelease && mouseOnlyState == myMajorBtn )
+            if ( e->type() == QEvent::MouseButtonRelease )
             {
                 state = Fin;
             }
@@ -832,7 +835,7 @@ bool GLViewer_ViewSketcher::eventFilter( QObject* o, QEvent* e )
             SketchState state = EnTrain;
             QMouseEvent* me = (QMouseEvent*)e;
 
-            myButtonState = me->modifiers();
+            myButtonState = me->buttons();
             if ( e->type() == QEvent::MouseButtonPress )
                 myButtonState |= me->button();  /* add pressed button */
 
@@ -885,7 +888,9 @@ void GLViewer_ViewSketcher::onSketch( SketchState state )
 
     if ( state == Fin )
     {
-        QApplication::syncX();  /* force rectangle redrawing */
+#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
+       QApplication::syncX();  /* force rectangle redrawing */
+#endif
         myViewer->activateSketching( GLViewer_Viewer::NoSketching );
     }
 }