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