[Win32] Fix spurious mouse enter and leave messages
authorFraser Waters <frassle@gmail.com>
Sat, 17 Oct 2015 15:56:35 +0000 (16:56 +0100)
committerFraser Waters <frassle@gmail.com>
Sat, 17 Oct 2015 16:00:41 +0000 (17:00 +0100)
commita1cc67c70eacbfb7ee1e9098982c14223aa8fed3
tree849c6b9922d6c6519478f9c99d00e3c91a180561
parent616ac5a017b8dbc6d14aca572e8e330b97446e7c
[Win32] Fix spurious mouse enter and leave messages

Mouse tracking and mouse capture didn't work well together. Mouse capture was
also buggy in that it could release capture prematurely.

Mouse capture is now counted and tracked better, multiple requests to set
capture will only call SetCapture once. ReleaseCapture will only be called once
the same number of releases have been made as sets.
MW_MOUSELEAVE messages are now ignored if the mouse is captured.
Mouse tracking is renabled when mouse capture is released.
While the mouse is captured enter and leave events are genereated based on
tracking of the mouse inside MouseMove.

Fixes #301
Source/OpenTK/Platform/Windows/WinGLNative.cs