Skip to content

Commit 42abf69

Browse files
committed
emscripten: Fix only one mouse button being usable at a time.
Fixes #15056. (cherry picked from commit c9591c5)
1 parent 5d9d966 commit 42abf69

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/video/emscripten/SDL_emscriptenevents.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -667,14 +667,14 @@ typedef struct Emscripten_PointerEvent
667667
static void Emscripten_HandleMouseButton(SDL_WindowData *window_data, const Emscripten_PointerEvent *event)
668668
{
669669
Uint8 sdl_button;
670-
const bool down = (event->down != 0);
670+
bool down = false;
671671
switch (event->button) {
672-
#define CHECK_MOUSE_BUTTON(jsbutton, sdlbutton) case jsbutton: sdl_button = SDL_BUTTON_##sdlbutton; break
673-
CHECK_MOUSE_BUTTON(0, LEFT);
674-
CHECK_MOUSE_BUTTON(1, MIDDLE);
675-
CHECK_MOUSE_BUTTON(2, RIGHT);
676-
CHECK_MOUSE_BUTTON(3, X1);
677-
CHECK_MOUSE_BUTTON(4, X2);
672+
#define CHECK_MOUSE_BUTTON(jsbutton, downflag, sdlbutton) case jsbutton: sdl_button = SDL_BUTTON_##sdlbutton; down = (event->down != 0) || ((event->buttons & downflag) != 0); break
673+
CHECK_MOUSE_BUTTON(0, 1, LEFT);
674+
CHECK_MOUSE_BUTTON(1, 4, MIDDLE);
675+
CHECK_MOUSE_BUTTON(2, 2, RIGHT);
676+
CHECK_MOUSE_BUTTON(3, 8, X1);
677+
CHECK_MOUSE_BUTTON(4, 16, X2);
678678
#undef CHECK_MOUSE_BUTTON
679679
default: sdl_button = 0; break;
680680
}

0 commit comments

Comments
 (0)