1
0
Fork 0
forked from wry/wry

properly fix screenshare portal

This commit is contained in:
kossLAN 2026-06-06 23:01:38 -04:00
parent e61f042d8b
commit 4680fc8dbc
No known key found for this signature in database
2 changed files with 15 additions and 4 deletions

View file

@ -3,4 +3,4 @@ default=gtk
org.freedesktop.impl.portal.ScreenCast=jay
org.freedesktop.impl.portal.RemoteDesktop=jay
org.freedesktop.impl.portal.Inhibit=none
org.freedesktop.impl.portal.FileChooser=gtk4
org.freedesktop.impl.portal.FileChooser=gtk

View file

@ -286,17 +286,28 @@ impl UsrJayOutputOwner for PortalOutput {
impl UsrWlOutputOwner for PortalOutput {}
async fn maybe_add_display(state: &Rc<PortalState>, name: &str) {
fn parse_display_name(name: &str) -> Option<u32> {
let tail = match name.strip_prefix("wayland-") {
Some(t) => t,
_ => return,
_ => return None,
};
let head = match tail.strip_suffix(".jay") {
Some(h) => h,
_ => return,
_ => tail,
};
let num = match u32::from_str(head) {
Ok(n) => n,
_ => return None,
};
if !(1..1000).contains(&num) {
return None;
}
Some(num)
}
async fn maybe_add_display(state: &Rc<PortalState>, name: &str) {
let num = match parse_display_name(name) {
Some(n) => n,
_ => return,
};
let path = format!("{}/{}", state.xrd, name);