godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

Implement stylus button support #6659

Open irishgreencitrus opened 1 year ago

irishgreencitrus commented 1 year ago

Describe the project you are working on

A whiteboard-style drawing app in Godot 4.0

Describe the problem or limitation you are having in your project

I can determine the pressure of a stylus, as well as the tilt, however when I try to use the buttons on the pen they don't work as intended. In other apps such as OneNote, the buttons on the stylus are determined as seperate buttons, however in Godot, only one is detected (albeit as a normal right click). I can't determine the difference between my mouse right clicking and the pen button, as well as the other button on the pen doing completely nothing in Godot.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Add proper button support so styluses can work properly, meaning whiteboard and drawing apps can be just as powerful if made inside Godot as if made without.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

This could be done with a new InputEventStylus class in an ideal world, removing the stylus from the normal limitations of the mouse (pen pressure is already hacked in with the InputEventMouseMotion class for reference).

If this enhancement will not be used often, can it be worked around with a few lines of script?

No, this is a core engine suggestion.

Is there a reason why this should be core and not an add-on in the asset library?

An asset library addon cannot modify the core Input system.

(I'm happy to work on implementing this into the engine if someone points me in the right direction)

Calinou commented 1 year ago

cc @bruvzg