refact: reduce try_get_displays() on login (#9333)
* 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:
parent
cacca7295c
commit
c358399eca
src/server
@ -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())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user