Browse Source

Remove scroll wheel hack

pull/6863/head
obligaron 2 years ago committed by Anders Jenbo
parent
commit
244d3d2f3a
  1. 29
      Source/diablo.cpp
  2. 20
      Source/engine/events.cpp

29
Source/diablo.cpp

@ -746,6 +746,35 @@ void GameEventHandler(const SDL_Event &event, uint16_t modState)
MousePosition = { event.button.x, event.button.y };
HandleMouseButtonUp(event.button.button, modState);
return;
#if SDL_VERSION_ATLEAST(2, 0, 0)
case SDL_MOUSEWHEEL:
if (event.wheel.y > 0) { // Up
if (stextflag != TalkID::None) {
StoreUp();
} else if (QuestLogIsOpen) {
QuestlogUp();
} else if (HelpFlag) {
HelpScrollUp();
} else if (ChatLogFlag) {
ChatLogScrollUp();
} else if (IsStashOpen) {
Stash.PreviousPage();
}
} else if (event.wheel.y < 0) { // down
if (stextflag != TalkID::None) {
StoreDown();
} else if (QuestLogIsOpen) {
QuestlogDown();
} else if (HelpFlag) {
HelpScrollDown();
} else if (ChatLogFlag) {
ChatLogScrollDown();
} else if (IsStashOpen) {
Stash.NextPage();
}
}
break;
#endif
default:
if (IsCustomEvent(event.type)) {
if (gbIsMultiplayer)

20
Source/engine/events.cpp

@ -101,6 +101,7 @@ bool FetchMessage_Real(SDL_Event *event, uint16_t *modState)
case SDL_TEXTEDITING:
case SDL_TEXTINPUT:
case SDL_WINDOWEVENT:
case SDL_MOUSEWHEEL:
#else
case SDL_ACTIVEEVENT:
#endif
@ -120,25 +121,6 @@ bool FetchMessage_Real(SDL_Event *event, uint16_t *modState)
*event = e;
break;
#ifndef USE_SDL1
case SDL_MOUSEWHEEL:
#ifdef _DEBUG
if (IsConsoleOpen()) {
*event = e;
break;
}
#endif
// This is a hack, mousewheel events should be handled directly by their consumers instead.
event->type = SDL_KEYDOWN;
if (e.wheel.y > 0) {
event->key.keysym.sym = (SDL_GetModState() & KMOD_CTRL) != 0 ? SDLK_KP_PLUS : SDLK_UP;
} else if (e.wheel.y < 0) {
event->key.keysym.sym = (SDL_GetModState() & KMOD_CTRL) != 0 ? SDLK_KP_MINUS : SDLK_DOWN;
} else if (e.wheel.x > 0) {
event->key.keysym.sym = SDLK_LEFT;
} else if (e.wheel.x < 0) {
event->key.keysym.sym = SDLK_RIGHT;
}
break;
#if SDL_VERSION_ATLEAST(2, 0, 4)
case SDL_AUDIODEVICEADDED:
return FalseAvail("SDL_AUDIODEVICEADDED", e.adevice.which);

Loading…
Cancel
Save