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,21 +499,29 @@ async fn run_instance<A, E, C>(
continue; continue;
} }
let interact_timer = debug::interact_time(window::Id::MAIN); let interface_state = if events.is_empty() {
let (interface_state, statuses) = user_interface.update( user_interface::State::Updated {
&events, redraw_request: None,
state.cursor(), }
&mut renderer, } else {
&mut clipboard, let interact_timer = debug::interact_time(window::Id::MAIN);
&mut messages, let (interface_state, statuses) = user_interface.update(
); &events,
interact_timer.finish(); state.cursor(),
&mut renderer,
&mut clipboard,
&mut messages,
);
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!(