"Alexandre Julliard" julliard@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>