From 4e0d3e2e5a8e73996a4613e5ddb9bda785cc8e4e Mon Sep 17 00:00:00 2001 From: daa84 Date: Thu, 5 May 2016 17:27:45 +0300 Subject: [PATCH] Quit from neovim - quits application --- src/main.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main.rs b/src/main.rs index 5e0a2bb..9bf0351 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,6 +13,8 @@ mod ui_model; mod ui; mod input; +use std::thread; + fn main() { gtk::init().expect("Failed to initialize GTK"); ui::UI.with(|ui_cell| { @@ -20,8 +22,20 @@ fn main() { ui.init(); nvim::initialize(&mut *ui).expect("Can't start nvim instance"); + + guard_dispatch_thread(&mut *ui); }); gtk::main(); } +fn guard_dispatch_thread(ui: &mut ui::Ui) { + let guard = ui.nvim().session.take_dispatch_guard(); + thread::spawn(move || { + guard.join().expect("Can't join dispatch thread"); + glib::idle_add(move || { + gtk::main_quit(); + glib::Continue(false) + }); + }); +}