The latest WM problems caused by Metacity preventing windows from being moved offscreen prompted to raise the issue of having a Wine specific extension to the NETWM (EWMH) protocol into which we can easily add whatever semantics we need to map win32 windowing to X windowing more easily.
The idea would be that we have a new property/set of properties we can mark windows with, _NET_WM_WINDOWS_EMULATION for instance, and standards compliant window managers will take note and not do things that break us.
Short of actually doing all our own window management, this is probably the best way to fix the obscure bugs caused by different interpretations WMs have of what various hints mean. The current NETWM border hints are semantic not presentational, so we cannot rely on particular intepretations. The MWM hints are even worse - they are apparently undocumented, and most modern WM authors consider them deprecated. Thanks to their undocumentedness, WMs vary in their interpretation of these too:
http://bugs.kde.org/show_bug.cgi?id=73294
So, I'd like to start gathering ideas on what sort of things we'd like to have in the NETWM spec, seeing as how many WMs conform to it these days.
First up is a way to ensure the WM doesn't attempt to keep the window onscreen of course :) Other things we probably want are related to border styles, an absolutely crystal-clear no-wriggling-possible equivalent to PPosition as apparently the wording of the ICCCM allows WM authors to ignore this if they want. We might also want to look at where we use unmanaged windows and see if we can replace them with the use of managed windows+hints.
We can probably hack around the lack of these things for now, but being able to use these hints where possible will probably keep a lot of us from going grey-haired early :)
thanks -mike