1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-06 21:00:25 +00:00

Merge pull request #358 from a740g/main

Fix incorrect client RECT offset when compiled with LLVM-MingW
This commit is contained in:
Samuel Gomes 2023-08-02 07:46:18 +05:30 committed by GitHub
commit 5b987d52a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -989,31 +989,24 @@ void fgSetWindow ( SFG_Window *window )
*/
void fghComputeWindowRectFromClientArea_UseStyle( const DWORD windowStyle, RECT *clientRect, BOOL posIsOutside )
{
int xBorderWidth = 0, yBorderWidth = 0;
RECT windowRect = {0, 0, 0, 0};
DWORD windowExStyle = 0;
CopyRect(&windowRect, clientRect);
/* If window has title bar, correct rect for it */
if (windowStyle & WS_SYSMENU) /* Need to query for WS_SYSMENU to see if we have a title bar, the WS_CAPTION query is also true for a WS_DLGFRAME only... */
if (posIsOutside)
clientRect->bottom += GetSystemMetrics( SM_CYCAPTION );
else
clientRect->top -= GetSystemMetrics( SM_CYCAPTION );
/* Get rect including non-client area */
AdjustWindowRectEx(&windowRect, windowStyle, FALSE, windowExStyle);
/* get width of window's borders (frame), correct rect for it.
* Note, borders can be of zero width if style does not specify borders
*/
fghGetBorderWidth(windowStyle, &xBorderWidth, &yBorderWidth);
if (posIsOutside)
{
clientRect->right += xBorderWidth * 2;
clientRect->bottom += yBorderWidth * 2;
}
else
{
clientRect->left -= xBorderWidth;
clientRect->right += xBorderWidth;
clientRect->top -= yBorderWidth;
clientRect->bottom += yBorderWidth;
/* Move window right and down by non-client area extent on left and top, if wanted */
if (posIsOutside) {
windowRect.right += clientRect->left - windowRect.left;
windowRect.bottom += clientRect->top - windowRect.top;
windowRect.left = clientRect->left;
windowRect.top = clientRect->top;
}
/* done, copy windowRect to output */
CopyRect(clientRect, &windowRect);
}
/* Computes position of corners of window Rect (outer position including