diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-05 00:40:18 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-06-05 00:40:18 +0300 |
| commit | b4b69b3539fc02d855c9b626cb205074e1541c78 (patch) | |
| tree | 71f61897e2847f4627b8cdb38b80cd036de49deb /src/server | |
| parent | 6b3f6462810e400fbbfbc21240b677732b0549ec (diff) | |
fix: open a default workspace when sessions are empty
refs #366
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/headless.rs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/server/headless.rs b/src/server/headless.rs index 596c55df..11e5f6b8 100644 --- a/src/server/headless.rs +++ b/src/server/headless.rs @@ -499,6 +499,12 @@ impl HeadlessServer { crate::render_prof::event("full_render_cause.config_reload"); } + if latest_app_client(&self.clients).is_some() && self.app.ensure_default_workspace() { + needs_render = true; + needs_full_render = true; + crate::render_prof::event("full_render_cause.default_workspace"); + } + self.drain_client_config_reload_request(); self.stream_host_mouse_capture_mode(); @@ -2146,8 +2152,12 @@ impl HeadlessServer { return true; } - let changed = api::request_changes_ui(&msg.request); - let changed = self.drain_all_internal_events_with_forwarding() || changed; + let mut changed = api::request_changes_ui(&msg.request); + let skip_default_workspace = matches!( + &msg.request.method, + api::schema::Method::ServerStop(_) | api::schema::Method::ServerLiveHandoff(_) + ); + changed |= self.drain_all_internal_events_with_forwarding(); // Capture toast and effective pane states before the API call so we can // forward resulting client-local notifications. API requests like @@ -2337,6 +2347,10 @@ impl HeadlessServer { } } + if !skip_default_workspace && latest_app_client(&self.clients).is_some() { + changed |= self.app.ensure_default_workspace(); + } + changed } |
