From 4680fc8dbcea673d25c2386c50f8fed4a49f9b08 Mon Sep 17 00:00:00 2001 From: kossLAN Date: Sat, 6 Jun 2026 23:01:38 -0400 Subject: [PATCH] properly fix screenshare portal --- etc/jay-portals.conf | 2 +- src/portal/ptl_display.rs | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/etc/jay-portals.conf b/etc/jay-portals.conf index 607e1691..661fb70f 100644 --- a/etc/jay-portals.conf +++ b/etc/jay-portals.conf @@ -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 diff --git a/src/portal/ptl_display.rs b/src/portal/ptl_display.rs index f3c30db4..19be9fd6 100644 --- a/src/portal/ptl_display.rs +++ b/src/portal/ptl_display.rs @@ -286,17 +286,28 @@ impl UsrJayOutputOwner for PortalOutput { impl UsrWlOutputOwner for PortalOutput {} -async fn maybe_add_display(state: &Rc, name: &str) { +fn parse_display_name(name: &str) -> Option { 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, name: &str) { + let num = match parse_display_name(name) { + Some(n) => n, _ => return, }; let path = format!("{}/{}", state.xrd, name);