First shot (not even compiled) at Windows hit-testing support.
parent
661548c8f3
commit
89ad793407
|
@ -865,6 +865,21 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WM_NCHITTEST:
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
// if we didn't return, this will call DefWindowProc below.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If there's a window proc, assume it's going to handle messages */
|
/* If there's a window proc, assume it's going to handle messages */
|
||||||
|
|
|
@ -121,6 +121,7 @@ WIN_CreateDevice(int devindex)
|
||||||
device->UpdateWindowFramebuffer = WIN_UpdateWindowFramebuffer;
|
device->UpdateWindowFramebuffer = WIN_UpdateWindowFramebuffer;
|
||||||
device->DestroyWindowFramebuffer = WIN_DestroyWindowFramebuffer;
|
device->DestroyWindowFramebuffer = WIN_DestroyWindowFramebuffer;
|
||||||
device->OnWindowEnter = WIN_OnWindowEnter;
|
device->OnWindowEnter = WIN_OnWindowEnter;
|
||||||
|
device->SetWindowHitTest = WIN_SetWindowHitTest;
|
||||||
|
|
||||||
device->shape_driver.CreateShaper = Win32_CreateShaper;
|
device->shape_driver.CreateShaper = Win32_CreateShaper;
|
||||||
device->shape_driver.SetWindowShape = Win32_SetWindowShape;
|
device->shape_driver.SetWindowShape = Win32_SetWindowShape;
|
||||||
|
|
|
@ -782,6 +782,12 @@ WIN_UpdateClipCursor(SDL_Window *window)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
WIN_SetWindowHitTest(SDL_Window *window, SDL_bool enabled)
|
||||||
|
{
|
||||||
|
return 0; /* just succeed, the real work is done elsewhere. */
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* SDL_VIDEO_DRIVER_WINDOWS */
|
#endif /* SDL_VIDEO_DRIVER_WINDOWS */
|
||||||
|
|
||||||
/* vi: set ts=4 sw=4 expandtab: */
|
/* vi: set ts=4 sw=4 expandtab: */
|
||||||
|
|
|
@ -68,6 +68,7 @@ extern SDL_bool WIN_GetWindowWMInfo(_THIS, SDL_Window * window,
|
||||||
struct SDL_SysWMinfo *info);
|
struct SDL_SysWMinfo *info);
|
||||||
extern void WIN_OnWindowEnter(_THIS, SDL_Window * window);
|
extern void WIN_OnWindowEnter(_THIS, SDL_Window * window);
|
||||||
extern void WIN_UpdateClipCursor(SDL_Window *window);
|
extern void WIN_UpdateClipCursor(SDL_Window *window);
|
||||||
|
extern int WIN_SetWindowHitTest(SDL_Window *window, SDL_bool enabled);
|
||||||
|
|
||||||
#endif /* _SDL_windowswindow_h */
|
#endif /* _SDL_windowswindow_h */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue