https://bugs.winehq.org/show_bug.cgi?id=52442
Bug ID: 52442 Summary: WM_SIZING not handled correctly Product: Wine Version: 7.0 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: user32 Assignee: wine-bugs@winehq.org Reporter: hjkl@quantentunnel.de Distribution: ---
Created attachment 71714 --> https://bugs.winehq.org/attachment.cgi?id=71714 Example to reproduce the issue
In case of using the WM_SIZING message to create a "raster" when resizing a window, resizing is completely prevented.
I attached an example to reproduce the issue. The .zip file contains a Visual C++ 2019 solution. When running the EXE (x64\Release\Example.exe), it creates a parent and a child window. The child window has the WS_THICKFRAME style to be resizable. Furthermore, it overwrites the WM_SIZING message and manipulates the right border of the passed RECT to have a raster for the resizing (window width can only be a multiple of 16 pixels). The example only does this when dragging the bottom right corner of the child window with the mouse. In Windows it works fine. In Wine resizing the window doesn't work correctly.
This is the critical code part:
case WM_SIZING: if(wParam==WMSZ_BOTTOMRIGHT) //dragging bottom right corner? { //create a raster of 16 pixels in X direction by manipulating RECT::right RECT* pRect=(RECT*)lParam;
pRect->right=pRect->left + ((pRect->right - pRect->left) & 0xfffffff0); return TRUE; }