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



Reply via email to