Salome HOME
INT PAL 0052660: Plot2D Viewer: Plot2d_Curve can't be selected
[modules/gui.git] / src / SVTK / SVTK_RenderWindowInteractor.cxx
index 6301ece1d32fefcc99d673b3c30f78447905c695..ac07e118c22a87257ff3833547f9a329635b537c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  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
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 static bool GENERATE_SUIT_EVENTS = true;
 static bool FOCUS_UNDER_MOUSE = false;
 
+// workaround about the bug in vtkImplicitPlaneWidget class
+// that eats mouse button release event
+// causing clipping plane preview in SMESH sticking up
+#define Fix_Of_vtkImplicitPlaneWidget_bug
 
 /*!
   Constructor
@@ -293,17 +297,19 @@ QVTK_RenderWindowInteractor
   else if( event->button() & Qt::MidButton )
     GetDevice()->MiddleButtonReleaseEvent();
   else if( event->button() & Qt::RightButton ) {
-    #ifndef Fix_Of_vtkImplicitPlaneWidget_bug
+#if defined(Fix_Of_vtkImplicitPlaneWidget_bug)
     GetDevice()->SetEventInformationFlipY( -99999, -99999,
                                            event->modifiers() & Qt::ControlModifier,
                                            event->modifiers() & Qt::ShiftModifier);
+    bool blocked = blockSignals( true );
     GetDevice()->LeftButtonPressEvent();
     GetDevice()->LeftButtonReleaseEvent();
+    blockSignals( blocked );
     GetDevice()->SetEventInformationFlipY(event->x(),
                                           event->y(),
                                           event->modifiers() & Qt::ControlModifier,
                                           event->modifiers() & Qt::ShiftModifier);
-    #endif
+#endif
     GetDevice()->RightButtonReleaseEvent();
   }
 }