Thanks Cody.
- Thanks for calling out the simulated mouse cvar. It was worth a try but ultimately it did not solve our issue. It does at least solve the mystery of why we get mouse click events on touch.
- We’re seeing mouse capture from multiple widgets in our application, which is essentially just a full-screen uwidget with some render targets. Buttons, sliders, comboboxes, checkboxes, etc. Buttons and checkboxes are fairly easy to work around, by, like you said, using the Down only or Precise Tap input types, but nothing like that exists for the other widget types as far as I can tell. Comboboxes specifically seem to be the hardest to get around without editing the source. But really we’d prefer not to have to do this unless we can automate it - our widget tree is multiple layers of nesting deep, so going through and setting the input type for buttons even is a huge manual task.
- What’s really strange is that we DON’T see the SDL_FINGERUP case being called for the affected finger even in FLinuxApplication. None of the logging events in the SDL_FINGERUP case in FLinuxApplication::ProcessDeferredMessage occur for the affected finger index in this block after mouse capture. They do occur if mouse capture is not routed, and they occur for subsequent touches. That is to say Index 0’s FINGERUP events never arrive after mouse capture, so subsequent touches assume Index 1, up to Index 9. If Mouse Capture is routed during a touch event 10 times, unreal will just stop listening for touch events entirely. I know that limit is imposed by unreal, not SDL. But the FINGERUP events are being blocked for some reason.