@@ -395,7 +395,6 @@ impl Application {
395395 use helix_view::graphics::Rect;
396396 match signal {
397397 signal::SIGTSTP => {
398− self.compositor.save_cursor();
399398 restore_term().unwrap();
400399 low_level::emulate_default_handler(signal::SIGTSTP).unwrap();
401400 }
@@ -404,7 +403,6 @@ impl Application {
404403 // redraw the terminal
405404 let Rect { width, height, .. } = self.compositor.size();
406405 self.compositor.resize(width, height);
407− self.compositor.load_cursor();
408406 self.render();
409407 }
410408 signal::SIGUSR1 => {
@@ -924,7 +922,12 @@ impl Application {
924922 }
925923
926924 async fn claim_term(&mut self) -> Result<(), Error> {
925+ use helix_view::graphics::CursorKind;
926+ use tui::backend::Backend;
927927 terminal::enable_raw_mode()?;
928+ if self.compositor.terminal.cursor_kind() == CursorKind::Hidden {
929+ self.compositor.terminal.backend_mut().hide_cursor().ok();
930+ }
928931 let mut stdout = stdout();
929932 execute!(
930933 stdout,
@@ -958,6 +961,15 @@ impl Application {
958961 self.event_loop(input_stream).await;
959962
960963 let close_errs = self.close().await;
964+
965+ use helix_view::graphics::CursorKind;
966+ use tui::backend::Backend;
967+ self.compositor
968+ .terminal
969+ .backend_mut()
970+ .show_cursor(CursorKind::Block)
971+ .ok();
972+
961973 restore_term()?;
962974
963975 for err in close_errs {