Run UserInterface::update only when events are present

This commit is contained in:
Héctor Ramón Jiménez 2024-02-28 19:37:26 +01:00
parent df62075040
commit 30e6605650
No known key found for this signature in database
GPG key ID: 7CC46565708259A7

View file

@ -499,6 +499,11 @@ async fn run_instance<A, E, C>(
continue; continue;
} }
let interface_state = if events.is_empty() {
user_interface::State::Updated {
redraw_request: None,
}
} else {
let interact_timer = debug::interact_time(window::Id::MAIN); let interact_timer = debug::interact_time(window::Id::MAIN);
let (interface_state, statuses) = user_interface.update( let (interface_state, statuses) = user_interface.update(
&events, &events,
@ -507,13 +512,16 @@ async fn run_instance<A, E, C>(
&mut clipboard, &mut clipboard,
&mut messages, &mut messages,
); );
interact_timer.finish();
for (event, status) in for (event, status) in
events.drain(..).zip(statuses.into_iter()) events.drain(..).zip(statuses.into_iter())
{ {
runtime.broadcast(event, status); runtime.broadcast(event, status);
} }
interact_timer.finish();
interface_state
};
if !messages.is_empty() if !messages.is_empty()
|| matches!( || matches!(