From f946f87f30ec82f67522773f52d72a9a79213671 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 9 Oct 2024 11:35:39 -0700 Subject: [PATCH] Don't rely on event.buttonMask being set in touchesEnded Fixes https://github.com/libsdl-org/SDL/issues/11131 --- src/video/uikit/SDL_uikitview.m | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/src/video/uikit/SDL_uikitview.m b/src/video/uikit/SDL_uikitview.m index f01c0374f4..215f84712d 100644 --- a/src/video/uikit/SDL_uikitview.m +++ b/src/video/uikit/SDL_uikitview.m @@ -292,26 +292,11 @@ extern int SDL_AppleTVRemoteOpenedAsJoystick; if (touch.type == UITouchTypeIndirectPointer) { if (!SDL_HasMouse()) { int i; + SDL_MouseButtonFlags buttons = SDL_GetMouseState(NULL, NULL); - for (i = 1; i <= MAX_MOUSE_BUTTONS; ++i) { - if (event.buttonMask & SDL_BUTTON_MASK(i)) { - Uint8 button; - - switch (i) { - case 1: - button = SDL_BUTTON_LEFT; - break; - case 2: - button = SDL_BUTTON_RIGHT; - break; - case 3: - button = SDL_BUTTON_MIDDLE; - break; - default: - button = (Uint8)i; - break; - } - SDL_SendMouseButton(UIKit_GetEventTimestamp([event timestamp]), sdlwindow, SDL_GLOBAL_MOUSE_ID, button, false); + for (i = 0; i < MAX_MOUSE_BUTTONS; ++i) { + if (buttons & SDL_BUTTON_MASK(i)) { + SDL_SendMouseButton(UIKit_GetEventTimestamp([event timestamp]), sdlwindow, SDL_GLOBAL_MOUSE_ID, (Uint8)i, false); } } }