diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-06 02:27:06 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-06 02:27:06 +0300 |
| commit | 9e9bc8a144667a6b7debfd4f0c7a31ff0e11493a (patch) | |
| tree | 03f1259f91fd9edeacfd4b904f2e84d4acf25232 /src/ghostty | |
| parent | 35b0dff96579f099e0436290085024424ffb289c (diff) | |
feat: manage multiple ssh machines from one client (#3670)
Diffstat (limited to 'src/ghostty')
| -rw-r--r-- | src/ghostty/mod.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/ghostty/mod.rs b/src/ghostty/mod.rs index 77ac36da..cd774c6b 100644 --- a/src/ghostty/mod.rs +++ b/src/ghostty/mod.rs @@ -1557,6 +1557,11 @@ impl Terminal { ) } + pub(crate) fn kitty_graphics_may_have_placements(&self) -> Result<bool, Error> { + let generation = self.kitty_graphics_generation()?; + Ok(generation != 0 && self.kitty_empty_generation.get() != Some(generation)) + } + pub fn kitty_image_placements(&self) -> Result<Vec<KittyImagePlacement>, Error> { self.kitty_image_placements_with_data_filter(|_| true) } @@ -3448,13 +3453,16 @@ mod tests { terminal.resize(10, 5, 8, 16).unwrap(); assert_eq!(terminal.kitty_graphics_generation().unwrap(), 0); + assert!(!terminal.kitty_graphics_may_have_placements().unwrap()); assert!(terminal.kitty_image_placements().unwrap().is_empty()); terminal.write(b"\x1b_Ga=t,t=d,f=24,i=1,s=1,v=2;////////\x1b\\"); let transmitted = terminal.kitty_graphics_generation().unwrap(); assert_ne!(transmitted, 0); + assert!(terminal.kitty_graphics_may_have_placements().unwrap()); assert!(terminal.kitty_image_placements().unwrap().is_empty()); assert_eq!(terminal.kitty_empty_generation.get(), Some(transmitted)); + assert!(!terminal.kitty_graphics_may_have_placements().unwrap()); terminal.write(b"plain text"); assert_eq!(terminal.kitty_graphics_generation().unwrap(), transmitted); @@ -3463,6 +3471,7 @@ mod tests { terminal.write(b"\x1b_Ga=p,i=1,p=1,c=1,r=1;\x1b\\"); let placed = terminal.kitty_graphics_generation().unwrap(); assert_ne!(placed, transmitted); + assert!(terminal.kitty_graphics_may_have_placements().unwrap()); assert_eq!(terminal.kitty_image_placements().unwrap().len(), 1); terminal.resize(10, 5, 12, 24).unwrap(); @@ -3473,14 +3482,17 @@ mod tests { assert_eq!(terminal.kitty_graphics_generation().unwrap(), placed); assert!(terminal.kitty_image_placements().unwrap().is_empty()); assert_ne!(terminal.kitty_empty_generation.get(), Some(placed)); + assert!(terminal.kitty_graphics_may_have_placements().unwrap()); terminal.scroll_viewport_row(0); assert_eq!(terminal.kitty_image_placements().unwrap().len(), 1); terminal.write(b"\x1b_Ga=d,d=A\x1b\\"); let deleted = terminal.kitty_graphics_generation().unwrap(); assert_ne!(deleted, placed); + assert!(terminal.kitty_graphics_may_have_placements().unwrap()); assert!(terminal.kitty_image_placements().unwrap().is_empty()); assert_eq!(terminal.kitty_empty_generation.get(), Some(deleted)); + assert!(!terminal.kitty_graphics_may_have_placements().unwrap()); } #[test] |
