Hi Jared,
It sounds like this may not be helpful for your current project (unless you’re a ways out from shipping and will be taking engine upgrades), but we’re in the process of integrating SDL3 to resolve a number of Linux input issues and remove some hacks that we’ve added over the years. One of the main priorities of the upgrade is better handling for touch support (which has been spotty on Linux for some time), so that may be coming with 5.7 if we’re able to iron out all of the issues.
For a more short-term workaround, have you been able to determine the conditions where the release event isn’t sent? If you enable the Slate Debugger, do you see the release event at all? Or is it never sent by SDL? If it’s related to the gesture processing in some of the linked posts, perhaps your input preprocessor could detect situations where an event leaks (finger up is never called) and manually send it to counteract the rising touch ID count. That may be tricky if you support multitouch since you’d need to determine the difference between a leaked ID and a finger that is still being held down, but if you exceed a certain finger count then you may be able to flush all of the active IDs without being too disruptive. Ideally we’d be able to detect the SDL gesture events and handle them properly (or at least cancel any hanging TouchDown events) but I fear that won’t be possible without engine changes.
Best,
Cody