diff options
Diffstat (limited to 'src/platform')
| -rw-r--r-- | src/platform/windows.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/platform/windows.rs b/src/platform/windows.rs index d77a30be..8a171716 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -56,6 +56,17 @@ use super::{ClipboardImage, ForegroundJob, Signal}; const STILL_ACTIVE: u32 = 259; const FOREGROUND_PROCESS_SNAPSHOT_CACHE_TTL: Duration = Duration::from_millis(250); +pub(crate) fn encode_windows_conpty_shift_enter(key: crate::input::TerminalKey) -> Option<Vec<u8>> { + use crossterm::event::{KeyCode, KeyEventKind, KeyModifiers}; + + if key.code != KeyCode::Enter || key.modifiers != KeyModifiers::SHIFT { + return None; + } + + let key_down = !matches!(key.kind, KeyEventKind::Release); + Some(format!("\x1b[13;28;13;{};16;1_", u8::from(key_down)).into_bytes()) +} + #[derive(Debug)] struct CachedProcessSnapshot { built_at: Instant, |
