From 568c8032b70a628bc3253a715e68c8d680bccc18 Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Tue, 1 Aug 2023 16:50:26 +0200 Subject: [PATCH] state: Trigger idle-callbacks on client disconnect --- src/state.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/state.rs b/src/state.rs index 8d7aa914..c7952038 100644 --- a/src/state.rs +++ b/src/state.rs @@ -98,10 +98,13 @@ pub struct ClientState { pub workspace_client_state: WorkspaceClientState, pub drm_node: Option, pub privileged: bool, + pub evls: LoopSignal, } impl ClientData for ClientState { fn initialized(&self, _client_id: ClientId) {} - fn disconnected(&self, _client_id: ClientId, _reason: DisconnectReason) {} + fn disconnected(&self, _client_id: ClientId, _reason: DisconnectReason) { + self.evls.wakeup(); + } } pub struct Data { @@ -367,6 +370,7 @@ impl State { _ => None, }, privileged: false, + evls: self.common.event_loop_signal.clone(), } } @@ -376,6 +380,7 @@ impl State { workspace_client_state: WorkspaceClientState::default(), drm_node: Some(drm_node), privileged: false, + evls: self.common.event_loop_signal.clone(), } } @@ -388,6 +393,7 @@ impl State { _ => None, }, privileged: true, + evls: self.common.event_loop_signal.clone(), } } }