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;
|
f32 position_y;
|
||||||
eButton button;
|
eButton button;
|
||||||
eScrollDirection scroll { eScrollDirection::None };
|
eScrollDirection scroll { eScrollDirection::None };
|
||||||
|
f32 scrollAmount { 0 };
|
||||||
gui::Widget* mousePressedOnWidget { nullptr };
|
gui::Widget* mousePressedOnWidget { nullptr };
|
||||||
WindowCore& parentWindow;
|
WindowCore& parentWindow;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -462,12 +462,16 @@ namespace ogfx
|
||||||
else if (event.type == SDL_EVENT_MOUSE_WHEEL)
|
else if (event.type == SDL_EVENT_MOUSE_WHEEL)
|
||||||
{
|
{
|
||||||
MouseEventData mmd = get_mouse_state(event);
|
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;
|
mmd.scroll = MouseEventData::eScrollDirection::Down;
|
||||||
else if (event.wheel.y == 1)
|
else if (delta > 0)
|
||||||
mmd.scroll = MouseEventData::eScrollDirection::Up;
|
mmd.scroll = MouseEventData::eScrollDirection::Up;
|
||||||
else
|
else
|
||||||
mmd.scroll = MouseEventData::eScrollDirection::None;
|
mmd.scroll = MouseEventData::eScrollDirection::None;
|
||||||
|
mmd.scrollAmount = delta;
|
||||||
ostd::SignalHandler::emitSignal(ostd::BuiltinSignals::MouseScrolled, ostd::Signal::Priority::RealTime, mmd);
|
ostd::SignalHandler::emitSignal(ostd::BuiltinSignals::MouseScrolled, ostd::Signal::Priority::RealTime, mmd);
|
||||||
}
|
}
|
||||||
else if (event.type == SDL_EVENT_MOUSE_BUTTON_DOWN)
|
else if (event.type == SDL_EVENT_MOUSE_BUTTON_DOWN)
|
||||||
|
|
|
||||||
|
|
@ -83,9 +83,9 @@ namespace ogfx
|
||||||
return;
|
return;
|
||||||
f32 offset_y = 0;
|
f32 offset_y = 0;
|
||||||
if (event.mouse->scroll == MouseEventData::eScrollDirection::Down)
|
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)
|
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 });
|
addScrollOffset({ 0, offset_y });
|
||||||
event.handle();
|
event.handle();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue