Update for spawn_desktop_exec that calls SpawnTransientUnit
Allows `xdg-desktop-portal` to get app id from PID. Also updates calls to `cosmic::process::spawn` to spawn in future.
This commit is contained in:
parent
b0e4e6fc6d
commit
293a91e8b1
11 changed files with 76 additions and 119 deletions
|
|
@ -1178,6 +1178,7 @@ impl cosmic::Application for CosmicAppList {
|
|||
},
|
||||
WaylandUpdate::ActivationToken {
|
||||
token,
|
||||
app_id,
|
||||
exec,
|
||||
gpu_idx,
|
||||
} => {
|
||||
|
|
@ -1194,8 +1195,8 @@ impl cosmic::Application for CosmicAppList {
|
|||
.map(|(k, v)| (k.clone(), v.clone())),
|
||||
);
|
||||
}
|
||||
tokio::task::spawn_blocking(|| {
|
||||
cosmic::desktop::spawn_desktop_exec(exec, envs);
|
||||
tokio::spawn(async move {
|
||||
cosmic::desktop::spawn_desktop_exec(exec, envs, app_id.as_deref()).await
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -179,6 +179,7 @@ impl ActivationHandler for AppData {
|
|||
fn new_token(&mut self, token: String, data: &ExecRequestData) {
|
||||
let _ = self.tx.unbounded_send(WaylandUpdate::ActivationToken {
|
||||
token: Some(token),
|
||||
app_id: data.app_id().map(|x| x.to_owned()),
|
||||
exec: data.exec.clone(),
|
||||
gpu_idx: data.gpu_idx,
|
||||
});
|
||||
|
|
@ -678,6 +679,7 @@ pub(crate) fn wayland_handler(
|
|||
} else {
|
||||
let _ = state.tx.unbounded_send(WaylandUpdate::ActivationToken {
|
||||
token: None,
|
||||
app_id: Some(app_id),
|
||||
exec,
|
||||
gpu_idx,
|
||||
});
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@ pub enum WaylandUpdate {
|
|||
Output(OutputUpdate),
|
||||
ActivationToken {
|
||||
token: Option<String>,
|
||||
app_id: Option<String>,
|
||||
exec: String,
|
||||
gpu_idx: Option<usize>,
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue