diff --git a/src/greeter.rs b/src/greeter.rs index e10dc3b..c170fcb 100644 --- a/src/greeter.rs +++ b/src/greeter.rs @@ -1188,6 +1188,12 @@ impl cosmic::Application for App { fn update(&mut self, message: Self::Message) -> Task { match message { Message::Common(common_message) => { + if matches!(&common_message, common::Message::Prompt(_, _, Some(_))) + && self.authenticating + { + self.authenticating = false; + self.common.prompt_opt = None; + } // In greetd's IPC protocol, the greeter must acknowledge auth messages by // sending PostAuthMessageResponse. For non-interactive "info" messages // (fingerprint prompts typically come through here), the correct response diff --git a/src/locker.rs b/src/locker.rs index 5bf0569..ba9e8ab 100644 --- a/src/locker.rs +++ b/src/locker.rs @@ -704,6 +704,12 @@ impl cosmic::Application for App { match message { Message::None => {} Message::Common(common_message) => { + if matches!(&common_message, common::Message::Prompt(_, _, Some(_))) + && self.authenticating + { + self.authenticating = false; + self.common.prompt_opt = None; + } return self.common.update(common_message); } Message::OutputEvent(output_event, output) => {