Report scroll deltas in lines for non-touch devices on OS X

Scroll deltas on OS X may be reported either as pixel deltas
to scroll by if supported by the device or line/row deltas
otherwise.
This commit is contained in:
Robert Knight 2015-06-14 18:09:02 +01:00
parent 5e626b7fdf
commit 5b08220df5

View file

@ -276,8 +276,12 @@ impl<'a> Iterator for PollEventsIterator<'a> {
event event
}, },
NSScrollWheel => { NSScrollWheel => {
use events::MouseScrollDelta::PixelDelta; use events::MouseScrollDelta::{LineDelta, PixelDelta};
let delta = PixelDelta(event.scrollingDeltaX() as f32, event.scrollingDeltaY() as f32); let delta = if event.hasPreciseScrollingDeltas() == YES {
PixelDelta(event.scrollingDeltaX() as f32, event.scrollingDeltaY() as f32)
} else {
LineDelta(event.scrollingDeltaX() as f32, event.scrollingDeltaY() as f32)
};
Some(MouseWheel(delta)) Some(MouseWheel(delta))
}, },
_ => { None }, _ => { None },