From fa69228716efdfe480724af72ec5141de3021345 Mon Sep 17 00:00:00 2001 From: Laurent Gomila Date: Sat, 2 Feb 2013 10:08:43 +0100 Subject: [PATCH] Fixed joysticks not detected when checked at application startup. --- src/SFML/Window/Win32/JoystickImpl.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/SFML/Window/Win32/JoystickImpl.cpp b/src/SFML/Window/Win32/JoystickImpl.cpp index 294f7c84..63036c0a 100644 --- a/src/SFML/Window/Win32/JoystickImpl.cpp +++ b/src/SFML/Window/Win32/JoystickImpl.cpp @@ -35,9 +35,10 @@ namespace { struct ConnectionCache { - ConnectionCache() : connected(false) {} + ConnectionCache() : connected(false), firstTime(true) {} bool connected; sf::Clock timer; + bool firstTime; }; const sf::Time connectionRefreshDelay = sf::milliseconds(500); @@ -55,9 +56,10 @@ bool JoystickImpl::isConnected(unsigned int index) // because of a strange (buggy?) behaviour of joyGetPosEx when joysticks // are just plugged/unplugged -- it takes really long and kills the app performances ConnectionCache& cache = connectionCache[index]; - if (cache.timer.getElapsedTime() > connectionRefreshDelay) + if (cache.firstTime || (cache.timer.getElapsedTime() > connectionRefreshDelay)) { cache.timer.restart(); + cache.firstTime = false; JOYINFOEX joyInfo; joyInfo.dwSize = sizeof(joyInfo);