Fix alert sounds on keypress on cocoa

Passing on keypress event to parent would make it think the event was
not consumed and emit an alert sound.
This commit is contained in:
Felix Kaaman 2015-04-24 15:53:02 +02:00
parent 4dee36631c
commit 44e954895f

View file

@ -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
}
}