aboutsummaryrefslogtreecommitdiff
path: root/src/ghostty
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-09-06 02:27:06 +0300
committerGitHub <noreply@github.com>2026-09-06 02:27:06 +0300
commit9e9bc8a144667a6b7debfd4f0c7a31ff0e11493a (patch)
tree03f1259f91fd9edeacfd4b904f2e84d4acf25232 /src/ghostty
parent35b0dff96579f099e0436290085024424ffb289c (diff)
feat: manage multiple ssh machines from one client (#3670)
Diffstat (limited to 'src/ghostty')
-rw-r--r--src/ghostty/mod.rs12
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]