diff --git a/src/Gui/RevitNavigationStyle.cpp b/src/Gui/RevitNavigationStyle.cpp index ef1518814a..62aeb2db8b 100644 --- a/src/Gui/RevitNavigationStyle.cpp +++ b/src/Gui/RevitNavigationStyle.cpp @@ -256,8 +256,6 @@ SbBool RevitNavigationStyle::processSoEvent(const SoEvent * const ev) newmode = NavigationStyle::SELECTION; break; case BUTTON1DOWN|BUTTON2DOWN: - newmode = NavigationStyle::PANNING; - break; case BUTTON3DOWN: newmode = NavigationStyle::PANNING; break; @@ -273,6 +271,13 @@ SbBool RevitNavigationStyle::processSoEvent(const SoEvent * const ev) break; default: + // Reset mode to SELECTION when button 3 is released + // This stops the DRAGGING when button 3 is released but SHIFT is still pressed + // This stops the ZOOMING when button 3 is released but CTRL is still pressed + if ((curmode == NavigationStyle::DRAGGING || curmode == NavigationStyle::ZOOMING) + && !this->button3down) { + newmode = NavigationStyle::SELECTION; + } break; }