From 3490d566624b3a4509d0dc9f0440ba3ae205ed70 Mon Sep 17 00:00:00 2001 From: ArthurSonzogni Date: Mon, 1 Jun 2020 15:57:18 +0200 Subject: [PATCH] Improve performance. Read all the input before drawing anything on the screen. --- src/ftxui/component/screen_interactive.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ftxui/component/screen_interactive.cpp b/src/ftxui/component/screen_interactive.cpp index 89720796..5f4a6e42 100644 --- a/src/ftxui/component/screen_interactive.cpp +++ b/src/ftxui/component/screen_interactive.cpp @@ -272,10 +272,12 @@ void ScreenInteractive::Loop(Component* component) { // The main loop. while (!quit_) { - std::cout << reset_cursor_position << ResetPosition(); - Draw(component); - std::cout << ToString() << set_cursor_position << std::flush; - Clear(); + if (!event_receiver_->HasPending()) { + std::cout << reset_cursor_position << ResetPosition(); + Draw(component); + std::cout << ToString() << set_cursor_position << std::flush; + Clear(); + } Event event; if (event_receiver_->Receive(&event)) component->OnEvent(event);