diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-02 22:45:51 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-02 22:45:51 +0300 |
| commit | e22cba35ef7b405758097a5f9436aae8fb4caaf0 (patch) | |
| tree | a25cf28ad45a3b34c4dc25d54e3095f6c8be2b3a /src/server/headless/pane_graphics.rs | |
| parent | 5a2dee700eeeea68267a4d16777307632f77172f (diff) | |
fix: keep direct graphics bound to its client (#3549)
Diffstat (limited to 'src/server/headless/pane_graphics.rs')
| -rw-r--r-- | src/server/headless/pane_graphics.rs | 9 |
1 files changed, 5 insertions, 4 deletions
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; } |
