mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-03-17 18:21:02 +03:00
Fix: note dialog not shown when closing session from reconnecting screen (#14528)
* Initial plan * Fix: show ask-for-note dialog when user clicks OK on reconnecting screen (#14527) Co-authored-by: rustdesk <71636191+rustdesk@users.noreply.github.com> * fix: don't clear audit_guid during reconnect, clear it after connection established Signed-off-by: 21pages <sunboeasy@gmail.com> --------- Signed-off-by: 21pages <sunboeasy@gmail.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: rustdesk <71636191+rustdesk@users.noreply.github.com> Co-authored-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
@@ -1016,19 +1016,31 @@ class FfiModel with ChangeNotifier {
|
||||
showMsgBox(SessionID sessionId, String type, String title, String text,
|
||||
String link, bool hasRetry, OverlayDialogManager dialogManager,
|
||||
{bool? hasCancel}) async {
|
||||
final showNoteEdit = parent.target != null &&
|
||||
final noteAllowed = parent.target != null &&
|
||||
allowAskForNoteAtEndOfConnection(parent.target, false) &&
|
||||
(title == "Connection Error" || type == "restarting") &&
|
||||
!hasRetry;
|
||||
(title == "Connection Error" || type == "restarting");
|
||||
final showNoteEdit = noteAllowed && !hasRetry;
|
||||
if (showNoteEdit) {
|
||||
await showConnEndAuditDialogCloseCanceled(
|
||||
ffi: parent.target!, type: type, title: title, text: text);
|
||||
closeConnection();
|
||||
} else {
|
||||
VoidCallback? onSubmit;
|
||||
if (noteAllowed && hasRetry) {
|
||||
final ffi = parent.target!;
|
||||
onSubmit = () async {
|
||||
_timer?.cancel();
|
||||
_timer = null;
|
||||
await showConnEndAuditDialogCloseCanceled(
|
||||
ffi: ffi, type: type, title: title, text: text);
|
||||
closeConnection();
|
||||
};
|
||||
}
|
||||
msgBox(sessionId, type, title, text, link, dialogManager,
|
||||
hasCancel: hasCancel,
|
||||
reconnect: hasRetry ? reconnect : null,
|
||||
reconnectTimeout: hasRetry ? _reconnects : null);
|
||||
reconnectTimeout: hasRetry ? _reconnects : null,
|
||||
onSubmit: onSubmit);
|
||||
}
|
||||
_timer?.cancel();
|
||||
if (hasRetry) {
|
||||
|
||||
@@ -1289,8 +1289,7 @@ impl<T: InvokeUiSession> Session<T> {
|
||||
drop(connection_round_state_lock);
|
||||
|
||||
let cloned = self.clone();
|
||||
*cloned.audit_guid.lock().unwrap() = String::new();
|
||||
*cloned.last_audit_note.lock().unwrap() = String::new();
|
||||
|
||||
// override only if true
|
||||
if true == force_relay {
|
||||
self.lc.write().unwrap().force_relay = true;
|
||||
@@ -1813,6 +1812,9 @@ impl<T: InvokeUiSession> Interface for Session<T> {
|
||||
);
|
||||
}
|
||||
self.update_privacy_mode();
|
||||
// Clear audit_guid when connection is established successfully
|
||||
*self.audit_guid.lock().unwrap() = String::new();
|
||||
*self.last_audit_note.lock().unwrap() = String::new();
|
||||
// Save recent peers, then push event to flutter. So flutter can refresh peer page.
|
||||
self.lc.write().unwrap().handle_peer_info(&pi);
|
||||
self.set_peer_info(&pi);
|
||||
|
||||
Reference in New Issue
Block a user