diff options
| author | Brendan Allan <[email protected]> | 2026-01-13 15:32:54 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-13 15:32:54 +0800 |
| commit | ddd9c71cca1f30a8214174fc10975e2ff3bb4635 (patch) | |
| tree | 6fe6459c58be57feda11bc83126cfcbfb51a12e4 /packages/desktop/src-tauri/src/lib.rs | |
| parent | 520a814fc20b5c87481f8ba73703c1c2d8142bc5 (diff) | |
| download | opencode-ddd9c71cca1f30a8214174fc10975e2ff3bb4635.tar.gz opencode-ddd9c71cca1f30a8214174fc10975e2ff3bb4635.zip | |
feat(desktop): Tie desktop & CLI to the same Windows JobObject (#8153)
Diffstat (limited to 'packages/desktop/src-tauri/src/lib.rs')
| -rw-r--r-- | packages/desktop/src-tauri/src/lib.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/desktop/src-tauri/src/lib.rs b/packages/desktop/src-tauri/src/lib.rs index e2682ec71..183220d16 100644 --- a/packages/desktop/src-tauri/src/lib.rs +++ b/packages/desktop/src-tauri/src/lib.rs @@ -1,9 +1,13 @@ mod cli; +#[cfg(windows)] +mod job_object; mod window_customizer; use cli::{install_cli, sync_cli}; use futures::FutureExt; use futures::future; +#[cfg(windows)] +use job_object::*; use std::{ collections::VecDeque, net::TcpListener, @@ -251,6 +255,9 @@ pub fn run() { // Initialize log state app.manage(LogState(Arc::new(Mutex::new(VecDeque::new())))); + #[cfg(windows)] + app.manage(JobObjectState::new()); + let primary_monitor = app.primary_monitor().ok().flatten(); let size = primary_monitor .map(|m| m.size().to_logical(m.scale_factor())) @@ -303,7 +310,14 @@ pub fn run() { let res = match setup_server_connection(&app, custom_url).await { Ok((child, url)) => { + #[cfg(windows)] + if let Some(child) = &child { + let job_state = app.state::<JobObjectState>(); + job_state.assign_pid(child.pid()); + } + app.state::<ServerState>().set_child(child); + Ok(url) } Err(e) => Err(e), |
