refact: reduce try_get_displays() on login ()

* refact: reduce try_get_displays() on login

Signed-off-by: fufesou <linlong1266@gmail.com>

* Function rename

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
This commit is contained in:
fufesou 2024-09-12 14:44:40 +08:00 committed by GitHub
parent cacca7295c
commit c358399eca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 23 deletions

@ -1279,29 +1279,9 @@ impl Connection {
self.send(msg_out).await; self.send(msg_out).await;
} }
#[cfg(not(any(target_os = "android", target_os = "ios")))]
{
#[cfg(not(windows))]
let displays = display_service::try_get_displays();
#[cfg(windows)]
let displays = display_service::try_get_displays_add_amyuni_headless();
pi.resolutions = Some(SupportedResolutions {
resolutions: displays
.map(|displays| {
displays
.get(self.display_idx)
.map(|d| crate::platform::resolutions(&d.name()))
.unwrap_or(vec![])
})
.unwrap_or(vec![]),
..Default::default()
})
.into();
}
try_activate_screen(); try_activate_screen();
match super::display_service::update_get_sync_displays().await { match super::display_service::update_get_sync_displays_on_login().await {
Err(err) => { Err(err) => {
res.set_error(format!("{}", err)); res.set_error(format!("{}", err));
} }
@ -1314,6 +1294,18 @@ impl Connection {
} }
pi.displays = displays; pi.displays = displays;
pi.current_display = self.display_idx as _; pi.current_display = self.display_idx as _;
#[cfg(not(any(target_os = "android", target_os = "ios")))]
{
pi.resolutions = Some(SupportedResolutions {
resolutions: pi
.displays
.get(self.display_idx)
.map(|d| crate::platform::resolutions(&d.name))
.unwrap_or(vec![]),
..Default::default()
})
.into();
}
res.set_peer_info(pi); res.set_peer_info(pi);
sub_service = true; sub_service = true;

@ -344,14 +344,18 @@ pub fn is_inited_msg() -> Option<Message> {
None None
} }
pub async fn update_get_sync_displays() -> ResultType<Vec<DisplayInfo>> { pub async fn update_get_sync_displays_on_login() -> ResultType<Vec<DisplayInfo>> {
#[cfg(target_os = "linux")] #[cfg(target_os = "linux")]
{ {
if !is_x11() { if !is_x11() {
return super::wayland::get_displays().await; return super::wayland::get_displays().await;
} }
} }
check_update_displays(&try_get_displays()?); #[cfg(not(windows))]
let displays = display_service::try_get_displays();
#[cfg(windows)]
let displays = display_service::try_get_displays_add_amyuni_headless();
check_update_displays(&displays?);
Ok(SYNC_DISPLAYS.lock().unwrap().displays.clone()) Ok(SYNC_DISPLAYS.lock().unwrap().displays.clone())
} }