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
},
NSScrollWheel => {
use events::MouseScrollDelta::PixelDelta;
let delta = PixelDelta(event.scrollingDeltaX() as f32, event.scrollingDeltaY() as f32);
use events::MouseScrollDelta::{LineDelta, PixelDelta};
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))
},
_ => { None },