From 49dbf2c14658cb5f2aafdbb75d826d8ba8fedc31 Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector0193@gmail.com>
Date: Tue, 9 Jun 2020 15:45:57 +0200
Subject: Request a redraw only on relevant events

---
 native/src/program/state.rs | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

(limited to 'native')

diff --git a/native/src/program/state.rs b/native/src/program/state.rs
index 8716d8b9..bb428198 100644
--- a/native/src/program/state.rs
+++ b/native/src/program/state.rs
@@ -88,6 +88,13 @@ where
         self.queued_messages.push(message);
     }
 
+    /// Returns whether the event queue of the [`State`] is empty or not.
+    ///
+    /// [`State`]: struct.State.html
+    pub fn is_queue_empty(&self) -> bool {
+        self.queued_events.is_empty() && self.queued_messages.is_empty()
+    }
+
     /// Processes all the queued events and messages, rebuilding and redrawing
     /// the widgets of the linked [`Program`] if necessary.
     ///
@@ -102,10 +109,6 @@ where
         renderer: &mut P::Renderer,
         debug: &mut Debug,
     ) -> Option<Command<P::Message>> {
-        if self.queued_events.is_empty() && self.queued_messages.is_empty() {
-            return None;
-        }
-
         let mut user_interface = build_user_interface(
             &mut self.program,
             self.cache.take().unwrap(),
-- 
cgit