Fixed hit-testing on Windows. Needed to convert from screen to client coords.
diff --git a/src/video/windows/SDL_windowsevents.c b/src/video/windows/SDL_windowsevents.c
index 48cf350..b04a7a2 100644
--- a/src/video/windows/SDL_windowsevents.c
+++ b/src/video/windows/SDL_windowsevents.c
@@ -870,10 +870,13 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
SDL_Window *window = data->window;
if (window->hit_test) {
- const SDL_Point point = { (int) LOWORD(lParam), (int) HIWORD(lParam) };
- const SDL_HitTestResult rc = window->hit_test(window, &point, window->hit_test_data);
- if (rc == SDL_HITTEST_DRAGGABLE) {
- return HTCAPTION;
+ POINT winpoint = { (int) LOWORD(lParam), (int) HIWORD(lParam) };
+ if (ScreenToClient(data->hwnd, &winpoint)) {
+ const SDL_Point point = { (int) winpoint.x, (int) winpoint.y };
+ const SDL_HitTestResult rc = window->hit_test(window, &point, window->hit_test_data);
+ if (rc == SDL_HITTEST_DRAGGABLE) {
+ return HTCAPTION;
+ }
}
// if we didn't return, this will call DefWindowProc below.
}