Gui: Prevent rubber-band selection when selection button is pressed after other buttons are pressed

This commit is contained in:
Rexbas
2024-01-22 21:34:08 +01:00
parent a01818a0c5
commit eac036105e
8 changed files with 50 additions and 18 deletions

View File

@@ -302,16 +302,18 @@ SbBool CADNavigationStyle::processSoEvent(const SoEvent * const ev)
break;
}
// If the selection button is pressed together with another button
// and the other button is released, don't switch to selection mode.
// Process when selection button is pressed together with other buttons that could trigger different actions.
if (this->button1down && (this->button2down || this->button3down)) {
this->lockButton1 = true;
processed = true;
}
if (newmode != curmode) {
this->setViewingMode(newmode);
}
// If for dragging the buttons 1 and 3 are pressed
// but then button 3 is released we shouldn't switch
// into selection mode.
if (this->button1down && this->button3down)
this->lockButton1 = true;
// If not handled in this class, pass on upwards in the inheritance
// hierarchy.
if (!processed)