Proper left handed support/revert 5b9744cb
It has been shown that partially bringing back left handed support (41b7dd6d) is insufficient and things such as rebooting from REPL via shoulder button require proper C access to handedness (see MR206). Also people are not at all discouraged/informed that using leftbutton/rightbutton breaks their application (we're guilty of the same crime in shoegaze).
This ties into back button override requests, and we do have ideas how to go about this, but for now let's properly bring back accessibility.
In case it might be unclear why left handed mode is different: For instruments that are used best when the badge is held in one hand and played with the other (such as shoegaze), it is possible to easily use one of the shoulder buttons (the one on the side of your holding hand) with your index finger.
To properly implement this feature, further steps are necessary in the future:
- Document button API properly so that people write applications that work with either hand.
- Provide outward/inward press for shoulder buttons in addition to the existing left/right press
- Consider what people might need for drawing display button info. We think something like bool applicationbuttonisleft() should suffice but maybe we're overlooking things.
In combination with back button override feature:
- Provide left/right shoulder button (not press direction but the button itself) API only if back button override is given, else insist on application/menu
- Back button override should come with standardized back alternatives. Since it implies two-handed use we'd propose Petal 5 as the default. A os-side splashscreen should inform the user that the back button for this application has been moved.
- Full back button override without alternative should be possible but discouraged. We don't quite know how to do this right.
We're happy to implement this ourselves if it is desired by the devs.