Refix dragged maximized window generating wrong mouse position events

This commit is contained in:
2025-04-03 00:47:27 +03:00
parent 13ddd15b44
commit 72f0c460f9

View File

@@ -134,9 +134,9 @@ bool SDLPlatform::EventFilterCallback(void* userdata, SDL_Event* event)
if (WinImpl::DraggedWindowSize != window->GetClientSize()) if (WinImpl::DraggedWindowSize != window->GetClientSize())
{ {
// The window size changed while dragging, most likely due to maximized window restoring back to previous size. // The window size changed while dragging, most likely due to maximized window restoring back to previous size.
WinImpl::DraggedWindowMousePosition = WinImpl::DraggedWindowStartPosition + WinImpl::DraggedWindowMousePosition - window->GetClientPosition();
WinImpl::DraggedWindowStartPosition = window->GetClientPosition(); WinImpl::DraggedWindowStartPosition = window->GetClientPosition();
WinImpl::DraggedWindowSize = window->GetClientSize(); WinImpl::DraggedWindowSize = window->GetClientSize();
WinImpl::DraggedWindowMousePosition = WinImpl::DraggedWindowStartPosition + WinImpl::DraggedWindowMousePosition - window->GetClientPosition();
} }
Float2 windowPosition = Float2(static_cast<float>(event->window.data1), static_cast<float>(event->window.data2)); Float2 windowPosition = Float2(static_cast<float>(event->window.data1), static_cast<float>(event->window.data2));
Float2 mousePosition = WinImpl::DraggedWindowMousePosition; Float2 mousePosition = WinImpl::DraggedWindowMousePosition;