Alexandre Julliard : x11drv: Moved desktop mode handling to the
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
>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
>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 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.
More information about the wine-devel