[Bug 20865] Steam login window jumps around the screen when moved

wine-bugs at winehq.org wine-bugs at winehq.org
Mon Jun 21 20:40:19 CDT 2010


http://bugs.winehq.org/show_bug.cgi?id=20865





--- Comment #19 from Vincent Povirk <madewokherd at 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.



More information about the wine-bugs mailing list