|
|
|
@ -828,6 +828,19 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg, |
|
|
|
|
const int x = GET_X_LPARAM(lParam); |
|
|
|
|
const int y = GET_Y_LPARAM(lParam); |
|
|
|
|
|
|
|
|
|
if (!window->win32.cursorTracked) |
|
|
|
|
{ |
|
|
|
|
TRACKMOUSEEVENT tme; |
|
|
|
|
ZeroMemory(&tme, sizeof(tme)); |
|
|
|
|
tme.cbSize = sizeof(tme); |
|
|
|
|
tme.dwFlags = TME_LEAVE; |
|
|
|
|
tme.hwndTrack = window->win32.handle; |
|
|
|
|
TrackMouseEvent(&tme); |
|
|
|
|
|
|
|
|
|
window->win32.cursorTracked = GLFW_TRUE; |
|
|
|
|
_glfwInputCursorEnter(window, GLFW_TRUE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (window->cursorMode == GLFW_CURSOR_DISABLED) |
|
|
|
|
{ |
|
|
|
|
const int dx = x - window->win32.lastCursorPosX; |
|
|
|
@ -848,19 +861,6 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg, |
|
|
|
|
window->win32.lastCursorPosX = x; |
|
|
|
|
window->win32.lastCursorPosY = y; |
|
|
|
|
|
|
|
|
|
if (!window->win32.cursorTracked) |
|
|
|
|
{ |
|
|
|
|
TRACKMOUSEEVENT tme; |
|
|
|
|
ZeroMemory(&tme, sizeof(tme)); |
|
|
|
|
tme.cbSize = sizeof(tme); |
|
|
|
|
tme.dwFlags = TME_LEAVE; |
|
|
|
|
tme.hwndTrack = window->win32.handle; |
|
|
|
|
TrackMouseEvent(&tme); |
|
|
|
|
|
|
|
|
|
window->win32.cursorTracked = GLFW_TRUE; |
|
|
|
|
_glfwInputCursorEnter(window, GLFW_TRUE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|