From 09d9ddde97d5def9107c9ad6a0939bf12703203e Mon Sep 17 00:00:00 2001 From: Ogulcan Celik Date: Sat, 23 May 2026 02:30:25 +0300 Subject: fix: preserve local keybindings in remote sessions --- src/app/input/modal.rs | 3 +-- src/app/mod.rs | 14 +++++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'src/app') diff --git a/src/app/input/modal.rs b/src/app/input/modal.rs index 1fae3800..acd481b8 100644 --- a/src/app/input/modal.rs +++ b/src/app/input/modal.rs @@ -675,8 +675,7 @@ mod tests { use super::*; fn config_env_lock() -> &'static std::sync::Mutex<()> { - static LOCK: std::sync::OnceLock> = std::sync::OnceLock::new(); - LOCK.get_or_init(|| std::sync::Mutex::new(())) + crate::config::test_config_env_lock() } fn temp_config_path(name: &str) -> std::path::PathBuf { diff --git a/src/app/mod.rs b/src/app/mod.rs index 4bcbada7..16b98193 100644 --- a/src/app/mod.rs +++ b/src/app/mod.rs @@ -90,6 +90,7 @@ pub struct App { pub(crate) full_redraw_pending: bool, pub(crate) overlay_panes: HashMap, pub(crate) local_terminal_notifications: bool, + pub(crate) config_reloaded_from_disk: bool, } pub(crate) enum LoopEvent { @@ -535,6 +536,7 @@ impl App { full_redraw_pending: false, overlay_panes: HashMap::new(), local_terminal_notifications: true, + config_reloaded_from_disk: false, } } @@ -880,10 +882,17 @@ impl App { self.apply_config_from_disk(true) } + pub(crate) fn take_config_reloaded_from_disk(&mut self) -> bool { + let reloaded = self.config_reloaded_from_disk; + self.config_reloaded_from_disk = false; + reloaded + } + pub(crate) fn apply_config_from_disk( &mut self, notify_success: bool, ) -> crate::config::ConfigReloadReport { + self.config_reloaded_from_disk = true; let previous_toast = self.state.toast.clone(); let report = match crate::config::load_live_config() { Ok(loaded) => self.apply_live_config( @@ -1237,7 +1246,7 @@ mod tests { use crate::terminal::TerminalRuntime; use crate::workspace::Workspace; use crossterm::event::{KeyCode, KeyEvent, KeyEventKind, KeyModifiers}; - use std::sync::{Mutex, OnceLock}; + use std::sync::Mutex; fn raw_key( code: KeyCode, @@ -1270,8 +1279,7 @@ mod tests { } fn config_env_lock() -> &'static Mutex<()> { - static LOCK: OnceLock> = OnceLock::new(); - LOCK.get_or_init(|| Mutex::new(())) + crate::config::test_config_env_lock() } fn temp_config_path(name: &str) -> std::path::PathBuf { -- cgit v1.2.3