From e22cba35ef7b405758097a5f9436aae8fb4caaf0 Mon Sep 17 00:00:00 2001 From: Can Celik Date: Wed, 2 Sep 2026 22:45:51 +0300 Subject: fix: keep direct graphics bound to its client (#3549) --- src/server/headless/pane_graphics.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/server/headless/pane_graphics.rs') diff --git a/src/server/headless/pane_graphics.rs b/src/server/headless/pane_graphics.rs index bce53b72..e1410be1 100644 --- a/src/server/headless/pane_graphics.rs +++ b/src/server/headless/pane_graphics.rs @@ -33,10 +33,9 @@ impl HeadlessServer { ) }) }); - let direct_client = self - .direct_graphics_available() - .then_some(self.foreground_client_id) - .flatten(); + let direct_client = direct_key + .as_ref() + .and_then(|key| self.direct_graphics_client_for_key(key)); let gate_busy = self .app .pane_graphics @@ -259,6 +258,7 @@ impl HeadlessServer { if self.app.pane_graphics.slots.remove(key).is_some() { self.app.pane_graphics.mark_changed(); } + self.app.direct_graphics_available = self.direct_graphics_available(); } pub(super) fn start_direct_graphics_response( @@ -340,6 +340,7 @@ impl HeadlessServer { self.retire_direct_gate(&key); return true; } + self.app.direct_graphics_available = self.direct_graphics_available(); return true; } -- cgit v1.2.3