diff options
author | tomaka <pierre.krieger1708@gmail.com> | 2015-04-24 19:27:49 +0200 |
---|---|---|
committer | tomaka <pierre.krieger1708@gmail.com> | 2015-04-24 19:27:49 +0200 |
commit | 7eeb96909c4008398e88a9d32e958b75ab7113de (patch) | |
tree | 04421182ecc0e7d9a9e6107e4f8782b186efa284 /src/api | |
parent | d6c50df294a7832b1d9233aaa0c5e0bee8929c8f (diff) | |
parent | 44e954895fd6c3497c8b5483e1b3efe160429329 (diff) | |
download | glutin-7eeb96909c4008398e88a9d32e958b75ab7113de.tar.gz glutin-7eeb96909c4008398e88a9d32e958b75ab7113de.zip |
Merge pull request #384 from fkaa/keypress-sound
Fix alert sounds on keypress for cocoa
Diffstat (limited to 'src/api')
-rw-r--r-- | src/api/cocoa/mod.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/api/cocoa/mod.rs b/src/api/cocoa/mod.rs index b9c566f..96bf842 100644 --- a/src/api/cocoa/mod.rs +++ b/src/api/cocoa/mod.rs @@ -199,9 +199,11 @@ impl<'a> Iterator for PollEventsIterator<'a> { NSDefaultRunLoopMode, YES); if event == nil { return None; } - NSApp().sendEvent_(event); - let event = match msg_send![event, type] { + let event_type = msg_send![event, type]; + NSApp().sendEvent_(if let NSKeyDown = event_type { nil } else { event }); + + let event = match event_type { NSLeftMouseDown => { Some(MouseInput(Pressed, MouseButton::Left)) }, NSLeftMouseUp => { Some(MouseInput(Released, MouseButton::Left)) }, NSRightMouseDown => { Some(MouseInput(Pressed, MouseButton::Right)) }, @@ -220,6 +222,7 @@ impl<'a> Iterator for PollEventsIterator<'a> { }; let view_rect = NSView::frame(*self.window.view); let scale_factor = self.window.hidpi_factor(); + Some(MouseMoved(((scale_factor * view_point.x as f32) as i32, (scale_factor * (view_rect.size.height - view_point.y) as f32) as i32))) }, @@ -241,6 +244,7 @@ impl<'a> Iterator for PollEventsIterator<'a> { }, NSKeyUp => { let vkey = event::vkeycode_to_element(NSEvent::keyCode(event)); + Some(KeyboardInput(Released, NSEvent::keyCode(event) as u8, vkey)) }, NSFlagsChanged => { @@ -273,8 +277,6 @@ impl<'a> Iterator for PollEventsIterator<'a> { _ => { None }, }; - - event } } |