I'm not entirely sure touch handling on Windows works entirely reliable.
Step event
GML:
if (device_mouse_check_button_pressed(0, mb_left)) {
show_debug_message("Pressed button");
}
if (device_mouse_check_button_released(0, mb_left)) {
show_debug_message("Released button");
}
Output after single tapping two times on my Surface Pro 4 track pad
Code:
Pressed button
Released button
Pressed button
Released button
double tapping two times (for a total of four touches) on track pad
Code:
Pressed button
Pressed button
Released button
Released button
Pressed button
Pressed button
Released button
Released button
two single tap on touch screen, not getting any successful pressed tests
Code:
Released button
Released button
and finally two double taps on screen (four touches), seemingly reacting as two single tap events but with some extra released statuses
Code:
Released button
Pressed button
Released button
Released button
Pressed button
Released button
Running the same project with the HTML5 target, two single tap on the touch screen seems more logical, giving the same output as using the trackpad
Code:
Pressed button
Released button
Pressed button
Released button
In the end it may not necessarily be a GMS issue in the sense that it is an actual code bug, but perhaps something Windows is doing in an unexpected manner when propagating touch events to the application.