From dc6de293efbde30b09823aebf088f28eb849babc Mon Sep 17 00:00:00 2001
From: twinaphex <libretro@gmail.com>
Date: Sun, 9 Jun 2019 06:34:01 +0200
Subject: [PATCH] (runloop) Cleanups

---
 retroarch.c | 17 ++++-------------
 1 file changed, 4 insertions(+), 13 deletions(-)

diff --git a/retroarch.c b/retroarch.c
index 1a1cc44f0a..d8a1615439 100644
--- a/retroarch.c
+++ b/retroarch.c
@@ -3717,10 +3717,7 @@ static enum runloop_state runloop_check_state(
       old_input                 = current_input;
       old_action                = action;
 
-      if (!focused)
-         return RUNLOOP_STATE_POLLED_AND_SLEEP;
-
-      if (runloop_idle)
+      if (!focused || runloop_idle)
          return RUNLOOP_STATE_POLLED_AND_SLEEP;
    }
    else
@@ -3898,7 +3895,6 @@ static enum runloop_state runloop_check_state(
    {
       static bool old_frameadvance  = false;
       static bool old_pause_pressed = false;
-      bool check_is_oneshot         = true;
       bool frameadvance_pressed     = BIT256_GET(
             current_input, RARCH_FRAMEADVANCE);
       bool pause_pressed            = BIT256_GET(
@@ -3924,21 +3920,16 @@ static enum runloop_state runloop_check_state(
 
       if (runloop_is_paused)
       {
-         check_is_oneshot = trig_frameadvance ||
-            BIT256_GET(current_input, RARCH_REWIND);
-
          if (fs_toggle_triggered)
          {
             command_event(CMD_EVENT_FULLSCREEN_TOGGLE, NULL);
             if (!runloop_idle)
                video_driver_cached_frame();
          }
-      }
 
-      if (!check_is_oneshot)
-      {
-         retro_ctx.poll_cb();
-         return RUNLOOP_STATE_POLLED_AND_SLEEP;
+         /* Check if it's not oneshot */
+         if (!(trig_frameadvance || BIT256_GET(current_input, RARCH_REWIND)))
+            focused = false;
       }
    }