summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyohei Uto <im@kyoheiu.dev>2024-02-04 05:37:50 +0900
committerGitHub <noreply@github.com>2024-02-04 05:37:50 +0900
commit8c09f6102acb91102cf57ff8c9654a768b65b6e4 (patch)
treebaafabecc4264cf03d5d38f202d18497e49b676a
parent7296e1ecd7e50369e3a27802c2b1e5789626dd7e (diff)
parent7f025ab3cd553633c5746f6b05524d1bfdcfc444 (diff)
Merge pull request #275 from kyoheiu/fix/tmux-restore-position
Explicitly save the position before entering the alternate screen
-rw-r--r--src/run.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/run.rs b/src/run.rs
index 7ff0881..9a1ce8d 100644
--- a/src/run.rs
+++ b/src/run.rs
@@ -8,7 +8,7 @@ use super::session::*;
use super::state::*;
use super::term::*;
-use crossterm::cursor::RestorePosition;
+use crossterm::cursor::{RestorePosition, SavePosition};
use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyEventKind, KeyModifiers};
use crossterm::execute;
use crossterm::terminal::{EnterAlternateScreen, LeaveAlternateScreen};
@@ -153,8 +153,9 @@ pub fn run(arg: PathBuf, log: bool) -> Result<(), FxError> {
/// Run the app. (Containing the main loop)
fn _run(mut state: State, session_path: PathBuf) -> Result<(), FxError> {
- //Enter the alternate screen with crossterm
+ //Save the current cursor position and enter the alternate screen with crossterm
let mut screen = stdout();
+ write!(screen, "{}", SavePosition)?;
enter_raw_mode();
execute!(screen, EnterAlternateScreen)?;