Alexandre Julliard : x11drv: Moved desktop mode handling to the explorer process.

Robert Shearman rob at codeweavers.com
Wed Mar 29 09:33:50 CST 2006


Willie Sippel wrote:

>OK, maybe I got something completely wrong. I'll give you an example to show 
>the problem I mean:
>
>Traktor DJ Player, by Native Instruments
>
>On Windows:
>The main application window has no borders, appears in the taskbar, can be 
>minimized and moved like any regular window.
>
>On Wine (Kwin handles Wine windows):
>The main application has a KDE window decoration that hides the top part of 
>the interface. Everything else works as espected, but there should be no Kwin 
>decoration, especially as it hides parts of the interface, making the 
>application unusable. 
>
>On Wine (Wine handles windows):
>The application window looks as expected, no borders, can be moved around and 
>stuff. But it's always on top, always on all desktops and does not appear in 
>the taskbar. Which is completely wrong. Also, if minimized, you'll get a 
>stupid icon somewhere on the desktop, on all desktops, always on top, hiding 
>the K-Menu...
>
>The perfect solution would be to let Kwin (or whatever window manager) handle 
>the borderless windows, but don't draw any window decorations if the 
>applications doesn't want to. That's what I expected to achieve with Motif 
>hints (but I'm obviously too stupid, all I get are nice crashes)...
>  
>

It sounds like the borders being present is a separate problem. Without 
knowing what windows styles the application is using (it could be using 
a weird combination that doesn't set the correct hints), it sounds like 
the application is handling the WM_NCCALCSIZE message and overriding the 
non-client top border to 0 and drawing its own part of that interface. 
The trouble is that detecting this is rather hard. A solution is 
possible where after it is detected that the non-client size has been 
altered and the MWM flags adjusted appropriately, but this would be 
based on heuristics like the existing managed/unmanaged problem and 
sometimes the heuristics get it wrong.

This is just another case where if we do the right case for one problem 
then another problem crops up and it appears as though we are 
introducing regressions. In reality, fixing the managed/unmanaged window 
problem would be a huge step forward for everyone even if further work 
is necessary to make windows appear as expected.

-- 
Rob Shearman




More information about the wine-devel mailing list