On 10 Feb 2005 21:19:46 +0100, you wrote:
Carl Sopchak carl.sopchak@cegis123.com writes:
I guess my problem is that I have NO CLUE as to how this SHOULD be handled. Should the style be set to (style & ~WS_VISIBLE) when the rectangle is {0,0;0,0}? Should {0,0;0,0} be considered a valid rectangle in validate_window_rectangles()? Should validate_window_rectangles() only get called if the rectangle is not {0,0;0,0}? Or, very possibly, is there something else that should happen? Just to see what happened, I commented out the call to validate_window_rectangles, and the popup disappeared as it should.
The client rectangle should have been set to {0,0;0,0} too. You should look at the WM_NCCALCSIZE processing (SWP_DoNCCalcSize in dlls/x11drv/winpos.c) and check what's happening there with the rectangles.
Experimenting for another issue, I noticed today:
If I execute this under Win2K for a window with the WS_BORDER style:
| MoveWindow( hwnd, 0,0,0,0,0); | GetWindowRect ( hwnd, &rc); | trace(" 1. %ld,%ld-%ld,%ld\n", rc.left,rc.top, rc.right, rc.bottom); | DefWindowProcA(hwnd, WM_NCCALCSIZE, 0, (LPARAM)&rc); | trace(" 2. %ld,%ld-%ld,%ld\n", rc.left,rc.top, rc.right, rc.bottom);
this is the result:
1. 0,0-0,0 2. 1,1-1,1
It seems to me this should be allowed as valid.
Rein.