forked from 1b-agent/opencadstudio-upstream
web: never resurface an emptied autosave-restore prompt
A queued AutosaveRestore startup modal can outlive the pending list that justifies it: a file opened while the prompt is up displaces the modal, the entry is consumed, and the after-message hook then resurfaces a stale, empty Recover Drawing prompt. The hook now drops queued restore prompts whose pending list is empty.
This commit is contained in:
1 parent
c8777a857b
commit
64160fd68d
1 file changed
+9
@@ -17,6 +17,15 @@ impl OpenCADStudio {
|
||||
|
||||
pub(super) fn show_next_startup_modal(&mut self) {
|
||||
if self.active_modal.is_none() && self.opening.is_none() && self.pending_opens.is_empty() {
|
||||
// A queued AutosaveRestore can outlive its pending list when a
|
||||
// concurrent open displaces the modal and the entry is consumed
|
||||
// meanwhile; resurfacing it would show an empty prompt.
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
while self.pending_startup_modals.front() == Some(&ModalKind::AutosaveRestore)
|
||||
&& self.web_autosave_pending.is_empty()
|
||||
{
|
||||
self.pending_startup_modals.pop_front();
|
||||
}
|
||||
if let Some(&kind) = self.pending_startup_modals.front() {
|
||||
self.active_modal = Some(kind);
|
||||
self.reset_modal_geometry();
|
||||
|
||||
Reference in new issue
Block a user