Willie Sippel wrote:
However, I ranted enough I think. Back to the real problem. AFAIU, there's
only a single common/ feasible/ intelligent way to create borderless windows
on X11 - managed windows with 'no decoration' Motif hints (the way GTK
handles borderless windows). The example I found looks easy enough, only a
few lines of code, but I was once again reminded that Wine really is way over
my head - I have no idea how to hack that in to at least test it... :-(
The code is already in dlls/x11drv/window.c and it works well. The
trouble is that managed mode windows steal input focus when they are
created. To give you an example, you click on a text box in IE to put
your email address into a form and you're half-way through typing it in
when a tooltip appears. This steals input focus away from the text box
and you carry on typing without noticing until you look back at the
screen and notice only half of your email address is present. The same
problems occur for menus and "toast" notifications.
Let's examine the properties of unmanaged windows (there may be others
that I'm unaware of): They:
1. Have no window decorations
2. Are always on top
3. Appear on all virtual desktops.
Properties (1) and (2) have equal properties in the Win32 world.
However, currently only (1) is implemented. AFAIK, the reason (2) isn't
implemented is because it isn't set at window creation time, only after
window creation (and we cannot switch from managed to unmanaged after
creation).
Therefore, the solution is to allow managed windows to be converted to
unmanaged windows after creation and then we can implement (2) and have
an almost exact match of the desired properties of the window with the
actual properties that the window manager gives us. Then we can remove
the other hacks based on the window style that make Steam end up with an
unmanaged window.
--
Rob Shearman