From ea886773945a0c0856ab5866dde3a3fdd459ed1d Mon Sep 17 00:00:00 2001 From: Dillard Robertson <32615829+dilr@users.noreply.github.com> Date: Mon, 14 Aug 2023 23:19:24 -0400 Subject: [PATCH] Stop Terminal::drop from overriding work of Terminal::restore. (#7931) When Application::run is exiting, either Terminal::restore or Terminal::force_restore will be called depending on if a panic occured or not. Both of these functions will reset the cursor to terminal's default. After this is done, Terminal::drop will be called. If terminal.cursor_kind == Hidden, then the cursor will be reset to a CursorKind::Block, undoing the work of restore or force_restore. This commit just removes the drop implementation, as its job is already better handled in restore and force_restore. --- helix-tui/src/terminal.rs | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/helix-tui/src/terminal.rs b/helix-tui/src/terminal.rs index 8b7342751..d2a911cf5 100644 --- a/helix-tui/src/terminal.rs +++ b/helix-tui/src/terminal.rs @@ -65,20 +65,6 @@ pub struct Terminal viewport: Viewport, } -impl Drop for Terminal -where - B: Backend, -{ - fn drop(&mut self) { - // Attempt to restore the cursor state - if self.cursor_kind == CursorKind::Hidden { - if let Err(err) = self.show_cursor(CursorKind::Block) { - eprintln!("Failed to show the cursor: {}", err); - } - } - } -} - impl Terminal where B: Backend,