X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSVTK%2FSVTK_RenderWindowInteractor.cxx;h=ac07e118c22a87257ff3833547f9a329635b537c;hb=e6caa123c65e3c4a3017364ec5bb4225fd898465;hp=6301ece1d32fefcc99d673b3c30f78447905c695;hpb=a0054494bc71aff902b2bac8449acbcb118192e4;p=modules%2Fgui.git diff --git a/src/SVTK/SVTK_RenderWindowInteractor.cxx b/src/SVTK/SVTK_RenderWindowInteractor.cxx index 6301ece1d..ac07e118c 100644 --- a/src/SVTK/SVTK_RenderWindowInteractor.cxx +++ b/src/SVTK/SVTK_RenderWindowInteractor.cxx @@ -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 @@ -57,6 +57,10 @@ 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(); } }