title: Quick Button Input Fails to Generate any Events in SDL 1.2.15
body: <p>Lets say we have an input device which is a controller. In addition, lets say we also have some construct which checks for events using "SDL_PollEvent(...)".</p>
  
  <p>In my tests, "SDL_PollEvent(...)" was checked every 3 seconds, if a button is tapped quickly just once or even tapped multiple times during the delay, SDL will not generate the button press nor the button release events. If the very same button which was tapped on the controller, is now pressed and held down, the SDL dose generated those events.</p>
  
  <p>In addition to this very same test, if a keyboard key is tapped quickly just once during the very extreme "SDL_Delay(...)" test, a button pressed event is always generated.</p>
  
  <p>Quick button press and release from the controller device will generate events with "SDL_WaitEvent(...)". But, SDL_INIT_VIDEO and SDL_INIT_EVENTTHREAD must be in the same thread as they can't be separated across multiple SDL_Thread[s] in my case.</p>
  
  <p>Given the delay between event polling and how brief a button press is, my situation needs to know that the button was pressed at minimum once regardless.</p>
  
  <p>What can be done in this situation? So that SDL would generate/poll controller events the very same way as it dose for the keyboard device?</p>
  
  <p>Is SDL 1.2 not capable to do this? Are there other libraries which are better capable at guaranteeing that a button tap event is generated ? Thank you!</p>
  
  <pre><code>bool activity(1);
  
  while(activity) // event polling used in testing
  {
      std::cout &lt;&lt; "\nWaiting...";
      SDL_Delay(3000U); // &lt;--- simulating delay for purpose of test
  
      while(SDL_PollEvent(&amp;event_))
      {
          switch(event_.type)
          {
              case SDL_JOYBUTTONDOWN :
  
                  switch(event_.jbutton.button)
                  {
                      case  0U :
                          ...
                          break;
                      case  1U :
                          ...
                          break;
                  }
  
                  break;
              case SDL_KEYDOWN :
  
                  switch(event_.key.keysym.sym)
                  {
                      case SDLK_a :
                          ...
                          break;
                  }
  
                  break;
          }
      }
  }
  </code></pre>