aboutsummaryrefslogtreecommitdiffstats
path: root/src/api
diff options
context:
space:
mode:
authortomaka <pierre.krieger1708@gmail.com>2015-04-24 19:27:49 +0200
committertomaka <pierre.krieger1708@gmail.com>2015-04-24 19:27:49 +0200
commit7eeb96909c4008398e88a9d32e958b75ab7113de (patch)
tree04421182ecc0e7d9a9e6107e4f8782b186efa284 /src/api
parentd6c50df294a7832b1d9233aaa0c5e0bee8929c8f (diff)
parent44e954895fd6c3497c8b5483e1b3efe160429329 (diff)
downloadglutin-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.rs10
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
}
}