A graphical front-end for command line emulators that hides the underlying operating system and is intended to be controlled with a joystick or gamepad.
In the event of a mouse move, reset the mouse position to the middle of the window if it strays outside the mouse capture area.
Do not wrap around the selected menu item if the first or last menu item was reached by a mouse move event.
This makes overlay menus easier to navigate using a trackball or rotary spinner that presents as a mouse device.
Additional context:
I use Attract-Mode in a cocktail-style arcade cabinet with swappable control panels. For panels where the only directional control is a trackball or rotary spinner, I have Attract-Mode's input map configured to include Mouse Up for up and Mouse Down for down:
$ cat ~/.attract/attract.cfg
...
input_map
...
up Up
up R
up Mouse Up
down Down
down F
down Mouse Down
...
But mouse navigation in the overlay menus -- even just the exit confirmation dialog -- has been quite difficult. Mouse movement is erratic and hard to control with any precision. This pull request attempts to fix it.
Two changes to
FeOverlay::event_loop()
:In the event of a mouse move, reset the mouse position to the middle of the window if it strays outside the mouse capture area.
Do not wrap around the selected menu item if the first or last menu item was reached by a mouse move event.
This makes overlay menus easier to navigate using a trackball or rotary spinner that presents as a mouse device.
Additional context:
I use Attract-Mode in a cocktail-style arcade cabinet with swappable control panels. For panels where the only directional control is a trackball or rotary spinner, I have Attract-Mode's input map configured to include Mouse Up for up and Mouse Down for down:
But mouse navigation in the overlay menus -- even just the exit confirmation dialog -- has been quite difficult. Mouse movement is erratic and hard to control with any precision. This pull request attempts to fix it.