Browse Source

Merge pull request #1770 from Areloch/SDLMouseModsFix

Makes sure the key modifiers are passed along with mouse actions.
Areloch 9 năm trước cách đây
mục cha
commit
3432fbcd7a
1 tập tin đã thay đổi với 6 bổ sung3 xóa
  1. 6 3
      Engine/source/windowManager/sdl/sdlWindow.cpp

+ 6 - 3
Engine/source/windowManager/sdl/sdlWindow.cpp

@@ -426,16 +426,19 @@ void PlatformWindowSDL::defaultRender()
 
 void PlatformWindowSDL::_triggerMouseLocationNotify(const SDL_Event& evt)
 {
+   U32 mods = getTorqueModFromSDL(SDL_GetModState());
+
    if(!mMouseLocked)
-      mouseEvent.trigger(getWindowId(), 0, evt.motion.x, evt.motion.y, false);
+      mouseEvent.trigger(getWindowId(), mods, evt.motion.x, evt.motion.y, false);
    else
-      mouseEvent.trigger(getWindowId(), 0, evt.motion.xrel, evt.motion.yrel, true);
+      mouseEvent.trigger(getWindowId(), mods, evt.motion.xrel, evt.motion.yrel, true);
 }
 
 void PlatformWindowSDL::_triggerMouseWheelNotify(const SDL_Event& evt)
 {
+   U32 mods = getTorqueModFromSDL(SDL_GetModState());
    S32 wheelDelta = Con::getIntVariable("$pref::Input::MouseWheelSpeed", 120);
-   wheelEvent.trigger(getWindowId(), 0, evt.wheel.x * wheelDelta, evt.wheel.y * wheelDelta);
+   wheelEvent.trigger(getWindowId(), mods, evt.wheel.x * wheelDelta, evt.wheel.y * wheelDelta);
 }
 
 void PlatformWindowSDL::_triggerMouseButtonNotify(const SDL_Event& event)