Added scrolwheel delta to mouse event
This commit is contained in:
parent
ad7b3e6bed
commit
e2287c06f0
3 changed files with 9 additions and 4 deletions
|
|
@ -61,6 +61,7 @@ namespace ogfx
|
|||
f32 position_y;
|
||||
eButton button;
|
||||
eScrollDirection scroll { eScrollDirection::None };
|
||||
f32 scrollAmount { 0 };
|
||||
gui::Widget* mousePressedOnWidget { nullptr };
|
||||
WindowCore& parentWindow;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue