mirror of
https://github.com/glfw/glfw.git
synced 2024-11-10 00:51:47 +00:00
Added Win32 implementation of two-dimensional scrolling.
This commit is contained in:
parent
f93801c221
commit
7b938c6b08
@ -120,6 +120,9 @@ typedef struct tagKBDLLHOOKSTRUCT {
|
||||
#ifndef WHEEL_DELTA
|
||||
#define WHEEL_DELTA 120
|
||||
#endif
|
||||
#ifndef WM_MOUSEHWHEEL
|
||||
#define WM_MOUSEHWHEEL 0x020E
|
||||
#endif
|
||||
|
||||
#ifndef WM_XBUTTONDOWN
|
||||
#define WM_XBUTTONDOWN 0x020B
|
||||
|
19
src/win32/win32_window.c
Normal file → Executable file
19
src/win32/win32_window.c
Normal file → Executable file
@ -622,8 +622,6 @@ static void translateChar(_GLFWwindow* window, DWORD wParam, DWORD lParam)
|
||||
static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg,
|
||||
WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
int wheelDelta;
|
||||
|
||||
_GLFWwindow* window = (_GLFWwindow*) GetWindowLongPtr(hWnd, 0);
|
||||
|
||||
switch (uMsg)
|
||||
@ -880,12 +878,15 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg,
|
||||
|
||||
case WM_MOUSEWHEEL:
|
||||
{
|
||||
wheelDelta = (((int)wParam) >> 16) / WHEEL_DELTA;
|
||||
window->wheelPos += wheelDelta;
|
||||
_glfwInputScroll(window, 0, (((int) wParam) >> 16) / WHEEL_DELTA);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (window->mouseWheelCallback)
|
||||
window->mouseWheelCallback(window, window->wheelPos);
|
||||
case WM_MOUSEHWHEEL:
|
||||
{
|
||||
// This message is only sent on Windows Vista and later
|
||||
|
||||
_glfwInputScroll(window, (((int) wParam) >> 16) / WHEEL_DELTA, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1635,6 +1636,12 @@ void _glfwPlatformPollEvents(void)
|
||||
MSG msg;
|
||||
_GLFWwindow* window;
|
||||
|
||||
for (window = _glfwLibrary.windowListHead; window; window = window->next)
|
||||
{
|
||||
window->scrollX = 0;
|
||||
window->scrollY = 0;
|
||||
}
|
||||
|
||||
window = _glfwLibrary.cursorLockWindow;
|
||||
if (window)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user