Prevent event processing while working.

This commit is contained in:
Antoine POPINEAU 2023-11-13 11:44:58 +01:00
parent 8d24e412c9
commit c8e4c9b2b3
No known key found for this signature in database
GPG Key ID: E8379674E92D25D2
2 changed files with 7 additions and 1 deletions

View File

@ -25,6 +25,10 @@ use crate::{
pub async fn handle(greeter: Arc<RwLock<Greeter>>, input: KeyEvent, ipc: Ipc) -> Result<(), Box<dyn Error>> {
let mut greeter = greeter.write().await;
if greeter.working {
return Ok(());
}
match input {
// ^U should erase the current buffer.
KeyEvent {

View File

@ -39,7 +39,7 @@ async fn main() {
async fn run() -> Result<(), Box<dyn Error>> {
let mut events = Events::new().await;
let greeter = Greeter::new(events.sender()).await;
let mut greeter = Greeter::new(events.sender()).await;
let mut stdout = io::stdout();
register_panic_handler();
@ -55,6 +55,8 @@ async fn run() -> Result<(), Box<dyn Error>> {
let ipc = Ipc::new();
if greeter.remember && !greeter.username.value.is_empty() {
greeter.working = true;
ipc
.send(Request::CreateSession {
username: greeter.username.value.clone(),