I’m trying to implement a tap gesture on a Windows 10 touch screen by enabling Use Mouse For Touch. The screen is using the standard Windows “HID Compliant Touch Screen” driver.
I have an input mapped to Touch 1 as well as Left Mouse Button, which is called “Touch”. I replaced InputTouchBegin/End with this input in an attempt to fix this problem, since InputTouchBegin/End has the same issue.
My method is to record the initial touch position when Touch Pressed is fired and then record the position until Touch Released fires and compare the initial position with the last position, checking that the distance is within an acceptable threshold, and fire off a “Tap” if it is.
I’m currently printing out the X and Y screen position of the touch every tick between the Pressed and Release events. What I’m finding, however, is that if I touch the screen and don’t move my finger, Pressed never fires. I can touch the screen indefinitely without triggering the event if I don’t move my finger, making it impossible to get a true “Tap” to fire, since each tap requires a bit of movement on the screen.
I know Windows Touch features are a much lower priority than other things right now, but Use Mouse For Touch is the only alternative option, and that at least should work properly.
EDIT: Just an update to add that switching all of this over to pure mouse input and using Window’s abstractions of a touch screen as a mouse yields the same results.
With the input defined, it will use touch if Use Mouse For Touch is set to true or it will use just regular mouse input if Use Mouse For Touch is set to false. Either way, the same result happens, as is the case without the input at all when I monitor InputTouchBegin.
My goal is to detect a quick “tap” where the user touches the screen in one place and then lifts their finger up, which is a really common thing to want to capture for a touchscreen, and one Windows 10 usually reliably turns into a “click”, but UE4 doesn’t seem to capture that.
When this is packaged and put onto a Windows 10 machine with a touchscreen using the regular plug and play “HID Compliant Touch Screen” driver, I don’t get any output when I initially touch the screen. The output prints when I move my finger slightly. Having to move the finger position in order to register any input at all makes it so a regular “tap” that should start and end in a single place on the screen is impossible to capture.
It seems like a similar problem to [this post][3], but under different circumstances.
I hope that’s enough information to recreate the problem.
We were able to reproduce this issue on our end. I have written up a report (UE-30320) and I have submitted it to the developers for further consideration. I will provide updates with any pertinent information as it becomes available. Thank you for your time and information.
I went ahead and double checked on this issue for you. It appears that this issues status has not yet been updated to fixed. However, I will be sure to bump up the community interest on the report for this issue.