From 7b7ef1e07becf6af99c58b842771868f4d0c2a1c Mon Sep 17 00:00:00 2001 From: Camilla Berglund Date: Tue, 16 Apr 2013 20:57:51 +0200 Subject: [PATCH] Cleanup of Win32 mouse button handling. --- src/win32_window.c | 82 +++++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 52 deletions(-) diff --git a/src/win32_window.c b/src/win32_window.c index 3ffa56d8..d0fca337 100644 --- a/src/win32_window.c +++ b/src/win32_window.c @@ -481,77 +481,55 @@ static LRESULT CALLBACK windowProc(HWND hWnd, UINT uMsg, } case WM_LBUTTONDOWN: - { - SetCapture(hWnd); - _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_LEFT, GLFW_PRESS); - return 0; - } - case WM_RBUTTONDOWN: - { - SetCapture(hWnd); - _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_RIGHT, GLFW_PRESS); - return 0; - } - case WM_MBUTTONDOWN: + case WM_XBUTTONDOWN: { SetCapture(hWnd); - _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_MIDDLE, GLFW_PRESS); - return 0; - } - case WM_XBUTTONDOWN: - { - if (HIWORD(wParam) == XBUTTON1) - { - SetCapture(hWnd); - _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_4, GLFW_PRESS); - } - else if (HIWORD(wParam) == XBUTTON2) + if (uMsg == WM_LBUTTONDOWN) + _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_LEFT, GLFW_PRESS); + else if (uMsg == WM_RBUTTONDOWN) + _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_RIGHT, GLFW_PRESS); + else if (uMsg == WM_MBUTTONDOWN) + _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_MIDDLE, GLFW_PRESS); + else { - SetCapture(hWnd); - _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_5, GLFW_PRESS); - } + if (HIWORD(wParam) == XBUTTON1) + _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_4, GLFW_PRESS); + else if (HIWORD(wParam) == XBUTTON2) + _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_5, GLFW_PRESS); - return 1; - } + return TRUE; + } - case WM_LBUTTONUP: - { - ReleaseCapture(); - _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_LEFT, GLFW_RELEASE); return 0; } + case WM_LBUTTONUP: case WM_RBUTTONUP: - { - ReleaseCapture(); - _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_RIGHT, GLFW_RELEASE); - return 0; - } - case WM_MBUTTONUP: + case WM_XBUTTONUP: { ReleaseCapture(); - _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_MIDDLE, GLFW_RELEASE); - return 0; - } - case WM_XBUTTONUP: - { - if (HIWORD(wParam) == XBUTTON1) - { - ReleaseCapture(); - _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_4, GLFW_RELEASE); - } - else if (HIWORD(wParam) == XBUTTON2) + if (uMsg == WM_LBUTTONUP) + _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_LEFT, GLFW_RELEASE); + else if (uMsg == WM_RBUTTONUP) + _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_RIGHT, GLFW_RELEASE); + else if (uMsg == WM_MBUTTONUP) + _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_MIDDLE, GLFW_RELEASE); + else { - ReleaseCapture(); - _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_5, GLFW_RELEASE); + if (HIWORD(wParam) == XBUTTON1) + _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_4, GLFW_RELEASE); + else if (HIWORD(wParam) == XBUTTON2) + _glfwInputMouseClick(window, GLFW_MOUSE_BUTTON_5, GLFW_RELEASE); + + return TRUE; } - return 1; + return 0; } case WM_MOUSEMOVE: