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.