http://bugs.winehq.org/show_bug.cgi?id=20865 --- Comment #19 from Vincent Povirk <madewokherd(a)gmail.com> 2010-06-21 20:40:19 --- The message processing and wineserver calls reflect the way this works on Windows. Windows is synchronous. The Windows application needs to have immediate control over the window position. The WM_WINDOWPOSCHANGING and related messages must be processed BEFORE SetWindowPos returns. The new position is really determined by the arguments to WM_WINDOWPOSCHANGING when it returns. Thus, the program has complete and immediate control over its position. You can think of user32 and wineserver has having its own self-contained windowing system that correctly imitates the Windows windowing system. This is necessary for compatibility with Windows programs. X is completely different. In X, we ask the window manager for a new position, and it moves/resizes our window when it gets around to it. Or not. And not necessarily in the way we ask. We get a notification whenever the position changes, with no indication of the reason. X11DRV_WindowPosChanged and X11DRV_ConfigureNotify are the glue that connects the fully correct and synchronous wineserver windowing system to the asynchronous X windowing system. ConfigureNotify must call SetWindowPos when we get something not requested so that the application gets a WM_WINDOWPOSCHANGING message (which it can use to request a different position, in which case we SHOULD send another configure request) and so that the wineserver position can be updated. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.