aboutsummaryrefslogtreecommitdiff
path: root/src/server/headless/pane_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/server/headless/pane_graphics.rs
parent5a2dee700eeeea68267a4d16777307632f77172f (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.rs9
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;
}