winex11.drv: Avoid setting DIALOG type to windows, this imposes not expected limitations in functionality

Dmitry Timoshkov dmitry at codeweavers.com
Thu May 1 05:59:38 CDT 2008


"Alexandre Julliard" <julliard at winehq.org> wrote:

>> Metacity explicitly disables maximize, minimize and fullscreen capabilities
>> for windows of type _NET_WM_WINDOW_TYPE_DIALOG. Since Windows applications
>> don't expect such a restriction (dialogs can have maximize/minimize buttons
>> under Windows) it's better to avoid setting DIALOG type to windows at all.
> 
> This will break z-order management, Metacity ignores the transient for
> hint on TYPE_NORMAL windows. Maybe we should try to not set the type at
> all?

That's what we did before, and that's what the patch below tried to fix:

http://www.winehq.org/pipermail/wine-patches/2006-October/031522.html

Looks like the archives don't allow reading the contents of that message,
so here is what it says:

<quote>
Hello all

I've investigated the reason for troubles described in 
[Bug 1598] delphi 3 - managed - missing minimize/maximize buttons
http://bugs.winehq.org/show_bug.cgi?id=1598

When metacity window manager is notified about new window it tries to
guess it's window type. Since wine doesn't assign window type for all
windows, metacity applies heuristic and if window is transient for
another one, metacity counts it as a transient dialog and removes
minimize/maximize buttons.

So I propose to apply the attached patch to fix the problem. It also
reorders calls in X11DRV_set_wm_hints to make sequence more clear. It
fixes the problem for metacity and I hope for other window managers like
mwm or enlightment. 

I also wonder if it's possible to guess if window is a dialog and set
WM_TYPE_DIALOG for some windows. Window types also include dock windows,
popups, menu windows and so on. It would be nice to get information
about that from WS_STYLE.
</quote>

-- 
Dmitry.



More information about the wine-devel mailing list