Merge pull request #234 from Kethku/better-exit

better handling of quit
macos-click-through
Keith Simmons 5 years ago committed by GitHub
commit ef2d99b508
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -21,6 +21,7 @@ pub enum UiCommand {
Drag(u32, u32),
FocusLost,
FocusGained,
Quit,
}
impl UiCommand {
@ -60,6 +61,9 @@ impl UiCommand {
.command("if exists('#FocusGained') | doautocmd <nomodeline> FocusGained | endif")
.await
.expect("Focus Gained Failed"),
UiCommand::Quit => {
nvim.command("qa!").await.ok(); // Ignoring result as it won't succeed since the app closed.
}
}
}

@ -199,6 +199,10 @@ impl WindowWrapper {
}
}
pub fn handle_quit(&mut self) {
BRIDGE.queue_command(UiCommand::Quit);
}
pub fn handle_keyboard_input(&mut self, keycode: Option<Keycode>, text: Option<String>) {
let modifiers = self.context.keyboard().mod_state();
@ -375,7 +379,7 @@ pub fn ui_loop() {
.context
.event_pump()
.expect("Could not create sdl event pump");
'running: loop {
loop {
let frame_start = Instant::now();
window.synchronize_settings();
@ -386,12 +390,12 @@ pub fn ui_loop() {
for event in event_pump.poll_iter() {
match event {
Event::Quit { .. } => break 'running,
Event::Quit { .. } => window.handle_quit(),
Event::KeyDown {
keycode: Some(received_keycode),
keycode: received_keycode,
..
} => {
keycode = Some(received_keycode);
keycode = received_keycode;
}
Event::TextInput { text, .. } => keytext = Some(text),
Event::MouseMotion { x, y, .. } => window.handle_pointer_motion(x, y),

Loading…
Cancel
Save