Added scrolwheel delta to mouse event

This commit is contained in:
OmniaX-Dev 2026-04-18 05:06:44 +02:00
parent ad7b3e6bed
commit e2287c06f0
3 changed files with 9 additions and 4 deletions

View file

@ -61,6 +61,7 @@ namespace ogfx
f32 position_y;
eButton button;
eScrollDirection scroll { eScrollDirection::None };
f32 scrollAmount { 0 };
gui::Widget* mousePressedOnWidget { nullptr };
WindowCore& parentWindow;
};

View file

@ -462,12 +462,16 @@ namespace ogfx
else if (event.type == SDL_EVENT_MOUSE_WHEEL)
{
MouseEventData mmd = get_mouse_state(event);
if (event.wheel.y == -1)
f32 delta = event.wheel.y;
if (event.wheel.direction == SDL_MOUSEWHEEL_FLIPPED)
delta = -delta;
if (delta < 0)
mmd.scroll = MouseEventData::eScrollDirection::Down;
else if (event.wheel.y == 1)
else if (delta > 0)
mmd.scroll = MouseEventData::eScrollDirection::Up;
else
mmd.scroll = MouseEventData::eScrollDirection::None;
mmd.scrollAmount = delta;
ostd::SignalHandler::emitSignal(ostd::BuiltinSignals::MouseScrolled, ostd::Signal::Priority::RealTime, mmd);
}
else if (event.type == SDL_EVENT_MOUSE_BUTTON_DOWN)

View file

@ -83,9 +83,9 @@ namespace ogfx
return;
f32 offset_y = 0;
if (event.mouse->scroll == MouseEventData::eScrollDirection::Down)
offset_y = -(m_scrollSpeed.y * 15.0f);
offset_y = (m_scrollSpeed.y * event.mouse->scrollAmount * 15.0f);
else if (event.mouse->scroll == MouseEventData::eScrollDirection::Up)
offset_y = (m_scrollSpeed.y * 15.0f);
offset_y = (m_scrollSpeed.y * event.mouse->scrollAmount * 15.0f);
addScrollOffset({ 0, offset_y });
event.handle();
}