I’m pretty sure when it comes to click/hold behaviour, you need the click action to trigger on release rather than on press.
Specifically:
- When you click and release fast enough → “Click” action
- When you click and hold long enough before releasing → “Hold” action
It is done like this in Dark Souls, where you tap the button for dodge and hold it for sprint. It makes dodge “on release” rather than “on press” which some people call input lag.
Another approach could movement based instead of time based, where you only initiate the “Hold” action when you move the mouse while it is pressed, else it would be a “Click”.
I haven’t used Enhanced Input, so I can’t provide you with a prototype though.