I’m in the middle of porting a very large legacy code base from MS Windows to Linux.
After looking at the alternatives, I chose SDL as my cross-platform window manager.
As I go, I’ve noticed SDL handles a lot of MS Windows quirks the way we do, e.g. disabling the automatic translation of touch events into mouse events. But one thing SDL isn’t doing is disabling tablet “gestures”, such as flicks. Leaving these enabled creates the risk of user touch-interaction getting consumed or delayed, which is why I disabled them in the first place.
I was able to do so in my code by overriding the window-procedure function assigned by SDL_CreateWindow(), using logic nearly identical to what’s seen for data->wndproc in SDL_windowswindow.c .
May I suggest including something like this in your WIN_WindowProc() function:
case WM_TABLET_QUERYSYSTEMGESTURESTATUS: // See https://msdn.microsoft.com/en-us/library/windows/desktop/bb969148(v=vs.85).aspx . // If we're handling our own touches, we don't want any gestures. // Not all of these settings are documented. // The use of the undocumented ones was suggested by https://github.com/bjarkeck/GCGJ/blob/master/Monogame/Windows/WinFormsGameForm.cs . return TABLET_DISABLE_PRESSANDHOLD | // disables press and hold (right-click) gesture TABLET_DISABLE_PENTAPFEEDBACK | // disables UI feedback on pen up (waves) TABLET_DISABLE_PENBARRELFEEDBACK | // disables UI feedback on pen button down (circle) TABLET_DISABLE_TOUCHUIFORCEON | TABLET_DISABLE_TOUCHUIFORCEOFF | TABLET_DISABLE_TOUCHSWITCH | TABLET_DISABLE_FLICKS | // disables pen flicks (back, forward, drag down, drag up) TABLET_DISABLE_SMOOTHSCROLLING | TABLET_DISABLE_FLICKFALLBACKKEYS;