From 08f1731ded73c6141347f28e56b2a315823ec9d7 Mon Sep 17 00:00:00 2001 From: ZZYZX Date: Fri, 3 Feb 2017 17:39:26 +0200 Subject: [PATCH] Added keyboard modifiers for mouse events in SDL backend. --- src/posix/sdl/i_input.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/posix/sdl/i_input.cpp b/src/posix/sdl/i_input.cpp index 1d47dd6e0..759da062c 100644 --- a/src/posix/sdl/i_input.cpp +++ b/src/posix/sdl/i_input.cpp @@ -336,6 +336,12 @@ void MessagePump (const SDL_Event &sev) event.subtype = sev.type == SDL_MOUSEBUTTONDOWN ? EV_GUI_LButtonDown : EV_GUI_LButtonUp; event.subtype += (sev.button.button - 1) * 3; } + + SDL_Keymod kmod = SDL_GetModState(); + event.data3 = ((kmod & KMOD_SHIFT) ? GKM_SHIFT : 0) | + ((kmod & KMOD_CTRL) ? GKM_CTRL : 0) | + ((kmod & KMOD_ALT) ? GKM_ALT : 0); + D_PostEvent(&event); } break; @@ -345,6 +351,10 @@ void MessagePump (const SDL_Event &sev) { event.type = EV_GUI_Event; event.subtype = sev.wheel.y > 0 ? EV_GUI_WheelUp : EV_GUI_WheelDown; + SDL_Keymod kmod = SDL_GetModState(); + event.data3 = ((kmod & KMOD_SHIFT) ? GKM_SHIFT : 0) | + ((kmod & KMOD_CTRL) ? GKM_CTRL : 0) | + ((kmod & KMOD_ALT) ? GKM_ALT : 0); D_PostEvent (&event); } else