You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Sending mouse event to navigation bar buttons causes program to hang until program is refocused #1269
I searched the existing issues and did not find anything similar.
Current Behavior
When sending a mouse event to any of the buttons on the navigation bar, the program will hang until the program is refocused (either by alt-tabbing or clicking back into the program).
While the program is hanging, it continues to buffer controller inputs, the inputs are rapidly played back when the program recovers.
Expected Behavior
The input on the navigation bar should be executed (or possibly it should fail silently).
Steps To Reproduce
Configure controller to send mouse button inputs
Attempt to send input to minimize, maximize, or close buttons on navigation bar
The input will be consumed and the program will hang until it is refocused
Environment
Program Version 3.5.1
Compiled from packaging: GitHub Portable Windows Release
Built Against SDL 2.30.6
Running With SDL 2.30.6
Using Qt 5.15.2
Using Event Handler: SendInput
Host OS: windows Version: 10 Architecture: x86_64
Anything else?
The input is correctly handles the input when it is passed in other places, e.g., through the taskbar:
Certain inputs (seems mostly to happen with the analogue sticks and the triggers, maybe related to inputs with a floating point value attached?) will cause the red text that normally indicates controller events are being handled to become stuck on, though this is not consistent:
While the program is hanging, the navigation buttons are shaded as if the mouse button is being held down:
[00:09:27.658] 🐞DEBUG Processing JoyButton::joyEvent for: LS Click: Mouse LB SDL index: 7 className: JoyButton (file /src/joybuttontypes/joybutton.cpp:179)
[00:09:27.659] 🐞DEBUG "Processing release for button #1 - LS Click"
[00:09:27.659] 🐞DEBUG There is end of slotiter. Set currentCycle and previousCycle as null pointers
[00:09:27.659] 🐞DEBUG Processing JoyButton::joyEvent for: DPad - Button Left: LEFT SDL index: 8 className: JoyDPadButton (file /src/joybuttontypes/joybutton.cpp:179)
[00:09:27.659] 🐞DEBUG "Processing press for button #1 - DPad - Button Left"
[00:09:27.659] 🐞DEBUG Check now simple slots
[00:09:27.659] 🐞DEBUG deviceCode in getSlotString() is: 37 for mode: 0
[00:09:27.659] 🐞DEBUG 1 : It's a JoyKeyboard with code: 37 and name: "LEFT"
[00:09:27.659] 🐞DEBUG deviceCode in getSlotString() is: 37 for mode: 0
[00:09:27.659] 🐞DEBUG There has been assigned a lastActiveKey "LEFT"
[00:09:27.659] 🐞DEBUG Processing JoyButton::joyEvent for: DPad - Button Down: DOWN SDL index: 4 className: JoyDPadButton (file /src/joybuttontypes/joybutton.cpp:179)
[00:09:27.659] 🐞DEBUG "Processing press for button #1 - DPad - Button Down"
[00:09:27.659] 🐞DEBUG Check now simple slots
[00:09:27.659] 🐞DEBUG deviceCode in getSlotString() is: 40 for mode: 0
[00:09:27.659] 🐞DEBUG 1 : It's a JoyKeyboard with code: 40 and name: "DOWN"
[00:09:27.659] 🐞DEBUG deviceCode in getSlotString() is: 40 for mode: 0
[00:09:27.659] 🐞DEBUG There has been assigned a lastActiveKey "DOWN"
[00:09:27.659] 🐞DEBUG Processing JoyButton::joyEvent for: DPad - Button Left: LEFT SDL index: 8 className: JoyDPadButton (file /src/joybuttontypes/joybutton.cpp:179)
[00:09:27.659] 🐞DEBUG "Processing release for button #1 - DPad - Button Left"
[00:09:27.659] 🐞DEBUG There is end of slotiter. Set currentCycle and previousCycle as null pointers
[00:09:27.659] 🐞DEBUG Processing JoyButton::joyEvent for: DPad - Button Right: RIGHT SDL index: 2 className: JoyDPadButton (file /src/joybuttontypes/joybutton.cpp:179)
[00:09:27.660] 🐞DEBUG "Processing press for button #1 - DPad - Button Right"
[00:09:27.660] 🐞DEBUG Check now simple slots
[00:09:27.660] 🐞DEBUG deviceCode in getSlotString() is: 39 for mode: 0
[00:09:27.660] 🐞DEBUG 1 : It's a JoyKeyboard with code: 39 and name: "RIGHT"
[00:09:27.660] 🐞DEBUG deviceCode in getSlotString() is: 39 for mode: 0
[00:09:27.660] 🐞DEBUG There has been assigned a lastActiveKey "RIGHT"
[00:09:27.660] 🐞DEBUG Processing JoyButton::joyEvent for: DPad - Button Up: UP SDL index: 1 className: JoyDPadButton (file /src/joybuttontypes/joybutton.cpp:179)
[00:09:27.660] 🐞DEBUG "Processing press for button #1 - DPad - Button Up"
[00:09:27.660] 🐞DEBUG Check now simple slots
[00:09:27.660] 🐞DEBUG deviceCode in getSlotString() is: 38 for mode: 0
[00:09:27.660] 🐞DEBUG 1 : It's a JoyKeyboard with code: 38 and name: "UP"
[00:09:27.660] 🐞DEBUG deviceCode in getSlotString() is: 38 for mode: 0
[00:09:27.660] 🐞DEBUG There has been assigned a lastActiveKey "UP"
[00:09:27.660] 🐞DEBUG Processing JoyButton::joyEvent for: DPad - Button Down: DOWN SDL index: 4 className: JoyDPadButton (file /src/joybuttontypes/joybutton.cpp:179)
[00:09:27.660] 🐞DEBUG "Processing release for button #1 - DPad - Button Down"
[00:09:27.660] 🐞DEBUG There is end of slotiter. Set currentCycle and previousCycle as null pointers
[00:09:27.660] 🐞DEBUG Processing JoyButton::joyEvent for: DPad - Button Right: RIGHT SDL index: 2 className: JoyDPadButton (file /src/joybuttontypes/joybutton.cpp:179)
[00:09:27.660] 🐞DEBUG "Processing release for button #1 - DPad - Button Right"
[00:09:27.661] 🐞DEBUG There is end of slotiter. Set currentCycle and previousCycle as null pointers
[00:09:27.661] 🐞DEBUG Processing JoyButton::joyEvent for: DPad - Button Left: LEFT SDL index: 8 className: JoyDPadButton (file /src/joybuttontypes/joybutton.cpp:179)
[00:09:27.661] 🐞DEBUG "Processing press for button #1 - DPad - Button Left"
[00:09:27.661] 🐞DEBUG Check now simple slots
[00:09:27.661] 🐞DEBUG deviceCode in getSlotString() is: 37 for mode: 0
[00:09:27.661] 🐞DEBUG 1 : It's a JoyKeyboard with code: 37 and name: "LEFT"
[00:09:27.661] 🐞DEBUG deviceCode in getSlotString() is: 37 for mode: 0
Note that there was a several second real-time delay these two events:
[00:09:27.659] 🐞DEBUG "Processing release for button #1 - LS Click"
<...>
[00:09:27.659] 🐞DEBUG "Processing release for button #1 - DPad - Button Left"
Activity
ahoyaharr commentedon Jan 14, 2026
Relevant lines from logs:
Note that there was a several second real-time delay these two events: