diff --git a/sim/fakes/_sim.py b/sim/fakes/_sim.py
index b9ec85d89e803eeb2ad5520ce0f70d7ea0441053..82678dd6f4db2a68c47789a8d74321074ac9dd30 100644
--- a/sim/fakes/_sim.py
+++ b/sim/fakes/_sim.py
@@ -83,6 +83,8 @@ class Input:
         if ev.type == pygame.QUIT:
             pygame.quit()
             sys.exit()
+        if ev.type == pygame.USEREVENT:
+            _sim.render_gui_lazy()
 
         if prev_hover != self._mouse_hover:
             return True
diff --git a/sim/fakes/leds.py b/sim/fakes/leds.py
index aaf7e710c37322647727777f9e13221c45a99713..aadca2394f4d5f4b7d59069efd748c1e3361d411 100644
--- a/sim/fakes/leds.py
+++ b/sim/fakes/leds.py
@@ -43,7 +43,7 @@ def set_slew_rate(b: int):
 
 def update():
     _sim.leds_update()
-    _sim.render_gui_lazy()
+    pygame.event.post(pygame.event.Event(pygame.USEREVENT, {}))
 
 
 def set_auto_update(b: int):