From 33d80b5a0b8b5b2837c99be2a152bdeb73ca60c8 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 12 Nov 2020 02:00:08 +0100 Subject: Return `event::Status` in `UserInterface::update` --- native/src/program/state.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'native/src/program') diff --git a/native/src/program/state.rs b/native/src/program/state.rs index 95e6b60c..5557347b 100644 --- a/native/src/program/state.rs +++ b/native/src/program/state.rs @@ -120,15 +120,19 @@ where ); debug.event_processing_started(); - let mut messages = user_interface.update( - &self.queued_events, - cursor_position, - clipboard, - renderer, - ); - messages.extend(self.queued_messages.drain(..)); + let mut messages = Vec::new(); + + for event in self.queued_events.drain(..) { + let _ = user_interface.update( + event, + cursor_position, + clipboard, + renderer, + &mut messages, + ); + } - self.queued_events.clear(); + messages.extend(self.queued_messages.drain(..)); debug.event_processing_finished(); if messages.is_empty() { -- cgit From bf2d2561b8dde3e160438428b59c03c38a5f752a Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 12 Nov 2020 02:51:26 +0100 Subject: Batch event processing in `UserInterface::update` --- native/src/program/state.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'native/src/program') diff --git a/native/src/program/state.rs b/native/src/program/state.rs index 5557347b..76283e30 100644 --- a/native/src/program/state.rs +++ b/native/src/program/state.rs @@ -122,17 +122,16 @@ where debug.event_processing_started(); let mut messages = Vec::new(); - for event in self.queued_events.drain(..) { - let _ = user_interface.update( - event, - cursor_position, - clipboard, - renderer, - &mut messages, - ); - } + let _ = user_interface.update( + &self.queued_events, + cursor_position, + clipboard, + renderer, + &mut messages, + ); messages.extend(self.queued_messages.drain(..)); + self.queued_events.clear(); debug.event_processing_finished(); if messages.is_empty() { -- cgit