After some investigation...
It seems the mouse wheel deltaY comes from Mac OS X as a float; and SFML is stuffing it in to an Event struct as an int; which I suspect may be the cause of the issue.
1. First it's a float...
-(void)scrollWheel:(NSEvent *)theEvent
{
if (m_requester != 0) {
NSPoint loc = [self cursorPositionFromEvent:theEvent];
m_requester->mouseWheelScrolledAt([theEvent deltaY], loc.x, loc.y);
}
// Transmit to non-SFML responder
[[self nextResponder] scrollWheel:theEvent];
}
2. Now it's n int...
void WindowImplCocoa::mouseWheelScrolledAt(float delta, int x, int y)
{
Event event;
event.type = Event::MouseWheelMoved;
event.mouseWheel.delta = delta; // suspect the event.mouseWheel.delta is an int?
event.mouseWheel.x = x;
event.mouseWheel.y = y;
pushEvent(event);
}
Possibly moving the wheel a single notch at a time is causing low (< 0.5f values in the delta, which are coming out as 0, when it's converted to an int).
Could well be wrong though...