wgois/Object-oriented-Input-System--OIS- — pull request #4 by Mikarnage (2013-06-11 20:15:36+00:00)
Title: Fixes unreliable behavior with win32 mouse

(First posted here : https://bitbucket.org/cabalistic/ogredeps/pull-request/7/switched-win32mouse-to-use-getdevicestate/diff)

Detailed explanation of the bug
======================
Context
-----------
Ogre based app under windows 7
Not fullscreen
Mouse mode = non exclusive + foreground
Bug encountered
-------------------------
Click out of the Ogre window + alt-tab back to the Ogre window : OIS thinks that the mouse button is still pressed, even if it's not, until you click again. All other cases (alt tab out of Ogre window, or click back to the Ogre window) are OK

Diagnostic
---------------
OIS relies on GetDeviceData with DirectInput, which gives inconsistent results when focus is lost/gained.

Resolution
---------------
Using GetDeviceState() and comparing to the previous state seems to be much more reliable. Tested with OgreProcedural's ScriptInterpreter (an application where the user wants to regularly switch between an Ogre window and notepad)