Merge pull request #5554 from 21pages/elevate
close elevation request dialog on submit
This commit is contained in:
		
						commit
						7356b7a104
					
				@ -812,6 +812,8 @@ void showRequestElevationDialog(
 | 
			
		||||
      } else {
 | 
			
		||||
        bind.sessionElevateDirect(sessionId: sessionId);
 | 
			
		||||
      }
 | 
			
		||||
      close();
 | 
			
		||||
      showWaitUacDialog(sessionId, dialogManager, "wait-uac");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return CustomAlertDialog(
 | 
			
		||||
 | 
			
		||||
@ -1891,42 +1891,17 @@ impl Connection {
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                    }
 | 
			
		||||
                    #[cfg(windows)]
 | 
			
		||||
                    Some(misc::Union::ElevationRequest(r)) => match r.union {
 | 
			
		||||
                        Some(elevation_request::Union::Direct(_)) => {
 | 
			
		||||
                            #[cfg(windows)]
 | 
			
		||||
                            {
 | 
			
		||||
                                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;
 | 
			
		||||
                            }
 | 
			
		||||
                            self.handle_elevation_request(portable_client::StartPara::Direct)
 | 
			
		||||
                                .await;
 | 
			
		||||
                        }
 | 
			
		||||
                        Some(elevation_request::Union::Logon(_r)) => {
 | 
			
		||||
                            #[cfg(windows)]
 | 
			
		||||
                            {
 | 
			
		||||
                                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::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;
 | 
			
		||||
                            }
 | 
			
		||||
                        Some(elevation_request::Union::Logon(r)) => {
 | 
			
		||||
                            self.handle_elevation_request(portable_client::StartPara::Logon(
 | 
			
		||||
                                r.username, r.password,
 | 
			
		||||
                            ))
 | 
			
		||||
                            .await;
 | 
			
		||||
                        }
 | 
			
		||||
                        _ => {}
 | 
			
		||||
                    },
 | 
			
		||||
@ -2009,6 +1984,21 @@ impl Connection {
 | 
			
		||||
        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")))]
 | 
			
		||||
    fn change_resolution(&mut self, r: &Resolution) {
 | 
			
		||||
        if self.keyboard {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user