close elevation request dialog on submit to avoid frequent request
Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
parent
85b5c60d60
commit
54310b925d
@ -812,6 +812,8 @@ void showRequestElevationDialog(
|
|||||||
} else {
|
} else {
|
||||||
bind.sessionElevateDirect(sessionId: sessionId);
|
bind.sessionElevateDirect(sessionId: sessionId);
|
||||||
}
|
}
|
||||||
|
close();
|
||||||
|
showWaitUacDialog(sessionId, dialogManager, "wait-uac");
|
||||||
}
|
}
|
||||||
|
|
||||||
return CustomAlertDialog(
|
return CustomAlertDialog(
|
||||||
|
@ -1891,42 +1891,17 @@ impl Connection {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#[cfg(windows)]
|
||||||
Some(misc::Union::ElevationRequest(r)) => match r.union {
|
Some(misc::Union::ElevationRequest(r)) => match r.union {
|
||||||
Some(elevation_request::Union::Direct(_)) => {
|
Some(elevation_request::Union::Direct(_)) => {
|
||||||
#[cfg(windows)]
|
self.handle_elevation_request(portable_client::StartPara::Direct)
|
||||||
{
|
.await;
|
||||||
let mut err = "No need to elevate".to_string();
|
|
||||||
if !crate::platform::is_installed() && !portable_client::running() {
|
|
||||||
err = portable_client::start_portable_service(
|
|
||||||
portable_client::StartPara::Direct,
|
|
||||||
)
|
|
||||||
.err()
|
|
||||||
.map_or("".to_string(), |e| e.to_string());
|
|
||||||
}
|
|
||||||
let mut misc = Misc::new();
|
|
||||||
misc.set_elevation_response(err);
|
|
||||||
let mut msg = Message::new();
|
|
||||||
msg.set_misc(misc);
|
|
||||||
self.send(msg).await;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Some(elevation_request::Union::Logon(_r)) => {
|
Some(elevation_request::Union::Logon(r)) => {
|
||||||
#[cfg(windows)]
|
self.handle_elevation_request(portable_client::StartPara::Logon(
|
||||||
{
|
r.username, r.password,
|
||||||
let mut err = "No need to elevate".to_string();
|
))
|
||||||
if !crate::platform::is_installed() && !portable_client::running() {
|
.await;
|
||||||
err = portable_client::start_portable_service(
|
|
||||||
portable_client::StartPara::Logon(_r.username, _r.password),
|
|
||||||
)
|
|
||||||
.err()
|
|
||||||
.map_or("".to_string(), |e| e.to_string());
|
|
||||||
}
|
|
||||||
let mut misc = Misc::new();
|
|
||||||
misc.set_elevation_response(err);
|
|
||||||
let mut msg = Message::new();
|
|
||||||
msg.set_misc(misc);
|
|
||||||
self.send(msg).await;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
},
|
},
|
||||||
@ -2009,6 +1984,21 @@ impl Connection {
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(windows)]
|
||||||
|
async fn handle_elevation_request(&mut self, para: portable_client::StartPara) {
|
||||||
|
let mut err = "No need to elevate".to_string();
|
||||||
|
if !crate::platform::is_installed() && !portable_client::running() {
|
||||||
|
err = portable_client::start_portable_service(para)
|
||||||
|
.err()
|
||||||
|
.map_or("".to_string(), |e| e.to_string());
|
||||||
|
}
|
||||||
|
let mut misc = Misc::new();
|
||||||
|
misc.set_elevation_response(err);
|
||||||
|
let mut msg = Message::new();
|
||||||
|
msg.set_misc(misc);
|
||||||
|
self.send(msg).await;
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
#[cfg(not(any(target_os = "android", target_os = "ios")))]
|
||||||
fn change_resolution(&mut self, r: &Resolution) {
|
fn change_resolution(&mut self, r: &Resolution) {
|
||||||
if self.keyboard {
|
if self.keyboard {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user