aboutsummaryrefslogtreecommitdiff
path: root/src/kitty_graphics.rs
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-09-02 22:45:51 +0300
committerGitHub <noreply@github.com>2026-09-02 22:45:51 +0300
commite22cba35ef7b405758097a5f9436aae8fb4caaf0 (patch)
treea25cf28ad45a3b34c4dc25d54e3095f6c8be2b3a /src/kitty_graphics.rs
parent5a2dee700eeeea68267a4d16777307632f77172f (diff)
fix: keep direct graphics bound to its client (#3549)
Diffstat (limited to 'src/kitty_graphics.rs')
-rw-r--r--src/kitty_graphics.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/kitty_graphics.rs b/src/kitty_graphics.rs
index 37bae34e..2eca21f5 100644
--- a/src/kitty_graphics.rs
+++ b/src/kitty_graphics.rs
@@ -502,6 +502,7 @@ fn collect_visible_placements(
cell_size: HostCellSize,
uploaded_images: &HashMap<u32, ImageSignature>,
oversized_images: &HashMap<HostSourceKey, ImageSignature>,
+ client_id: u64,
) -> Vec<HostPlacement> {
let Some(target) = surface.target else {
tracing::debug!("collect_visible_placements: no tab surface target");
@@ -536,9 +537,10 @@ fn collect_visible_placements(
.filter_map(|((pane_id, layer_id), slot)| {
(*pane_id == info.id)
.then(|| {
- slot.layer
- .as_ref()
- .map(|layer| (layer_id, slot.host_image_id, layer))
+ slot.layer.as_ref().and_then(|layer| {
+ (!layer.terminal_only() || slot.direct_client() == Some(client_id))
+ .then_some((layer_id, slot.host_image_id, layer))
+ })
})
.flatten()
})