On 10 Feb 2005 21:19:46 +0100, you wrote:
Carl Sopchak <carl.sopchak(a)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.