Details
-
Bug
-
Resolution: Won't Do
-
P3: Somewhat important
-
None
-
5.11.0
-
None
Description
QGamepadKeyNavigationPrivate::_q_processGamepadButtonPressEvent() have next code:
//Trigger buttons are a special case as they get multiple press events as the value changes if (button == QGamepadManager::ButtonL2 && buttonL2Pressed) return; else buttonL2Pressed = true; if (button == QGamepadManager::ButtonR2 && buttonR2Pressed) return; else buttonR2Pressed = true;
So, when button != ButtonL2 or ButtonR2 it code will set buttonR2Pressed and/or buttonL2Pressed to true.
It should be changed to code like this:
if (button == QGamepadManager::ButtonL2) { if (buttonL2Pressed) return; else buttonL2Pressed = true; } if (button == QGamepadManager::ButtonR2) { if (buttonR2Pressed) return; else buttonR2Pressed = true; }
Also, QGamepadKeyNavigation have no any mechanizm to unset some key binding at all. What makes it impossible to use it in some cases.