diff options
author | shem | 2023-04-16 21:07:00 +0000 |
---|---|---|
committer | GitHub | 2023-04-16 21:07:00 +0000 |
commit | 1b016a89d546fb84d3c737d7c4bacb9e26c8b893 (patch) | |
tree | 865ab0b8556da85b73ff24faa862353008dbf50a | |
parent | 7706ff77eb8aea9471af822355cad337707b9fc5 (diff) |
Fix crash on opening from suspend state (#6764)
* Fix crash on opening from suspend state (#6725)
* Fix code style
* revert using of the imperative code style. Add panic if couldn't set terminal raw mode
* remove redundant import of core::panic macros
* small refactoring
-rw-r--r-- | helix-term/src/application.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index 4d28c8be..cda498e2 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -471,7 +471,17 @@ impl Application { } } signal::SIGCONT => { - self.claim_term().await.unwrap(); + // Copy/Paste from same issue from neovim: + // https://github.com/neovim/neovim/issues/12322 + // https://github.com/neovim/neovim/pull/13084 + for retries in 1..=10 { + match self.claim_term().await { + Ok(()) => break, + Err(err) if retries == 10 => panic!("Failed to claim terminal: {}", err), + Err(_) => continue, + } + } + // redraw the terminal let area = self.terminal.size().expect("couldn't get terminal size"); self.compositor.resize(area); |