@@ -667,14 +667,14 @@ typedef struct Emscripten_PointerEvent
667667static 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