diff --git a/libs/scrap/src/common/linux.rs b/libs/scrap/src/common/linux.rs index 0f1e9b622..4e83e6e7c 100644 --- a/libs/scrap/src/common/linux.rs +++ b/libs/scrap/src/common/linux.rs @@ -59,7 +59,7 @@ impl Display { }) } - // Call this function carefully for wayland, it may cause blocking + // Currently, wayland need to call wayland::clear() before call Display::all() pub fn all() -> io::Result> { Ok(if super::is_x11() { x11::Display::all()? diff --git a/src/server/display_service.rs b/src/server/display_service.rs index aa226099d..71772468c 100644 --- a/src/server/display_service.rs +++ b/src/server/display_service.rs @@ -186,7 +186,7 @@ fn check_get_displays_changed_msg() -> Option { pub fn check_displays_changed() -> ResultType<()> { #[cfg(target_os = "linux")] { - // For wayland, call Display::all() in video service will cause block, reproduced by refresh, I don't know the reason. + // Currently, wayland need to call wayland::clear() before call Display::all(), otherwise it will cause // block, or even crash here, https://github.com/rustdesk/rustdesk/blob/0bb4d43e9ea9d9dfb9c46c8d27d1a97cd0ad6bea/libs/scrap/src/wayland/pipewire.rs#L235 if !is_x11() { return Ok(());