aboutsummaryrefslogtreecommitdiff
path: root/src/kitty_graphics/surface.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/surface.rs
parent5a2dee700eeeea68267a4d16777307632f77172f (diff)
fix: keep direct graphics bound to its client (#3549)
Diffstat (limited to 'src/kitty_graphics/surface.rs')
-rw-r--r--src/kitty_graphics/surface.rs9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/kitty_graphics/surface.rs b/src/kitty_graphics/surface.rs
index 0e69a145..bf2482b6 100644
--- a/src/kitty_graphics/surface.rs
+++ b/src/kitty_graphics/surface.rs
@@ -339,6 +339,7 @@ pub(crate) fn collect_scene(
cell_size,
&uploaded_images,
&delivered_terminal_images,
+ client_id,
);
if let (Some(popup), Some((width, height)), Some((_, target))) = (
@@ -476,12 +477,8 @@ pub(crate) fn collect_scene(
.iter()
.filter_map(|(key, slot)| {
let layer = slot.layer.as_ref()?;
- let retained_for_client = layer.resident_client() == Some(client_id)
- || slot
- .direct_gate
- .as_ref()
- .is_some_and(|gate| gate.client_id == client_id);
- retained_for_client.then(|| pane_layer_asset_key(app, key, layer))?
+ (slot.direct_client() == Some(client_id))
+ .then(|| pane_layer_asset_key(app, key, layer))?
})
.collect::<Vec<_>>();
retained_assets.sort_by_key(|key| format!("{:?}", key.source));