On Tuesday 16 May 2006 19:15, Mike McCormack wrote:
The problem is that we should ask the Window manager to minimize us.
This is what the XIconifyWindow call (made in X11DRV_set_iconic_state in dlls/x11drv/window.c, called by WINPOS_MinMaximise, called by the SW_MINIMIZE and SW_SHOWMINIMIZED cases in X11DRV_ShowWindow) is documented as doing - in fact based on the description of XIconifyWindow (without checking its source code), it seems your X11DRV_WMMinimizeWindow is just a reimplementation of that.
There's a hack in CrossOver that "fixes" it, which I've attached. If you're in a good mood, try getting it accepted into Wine. :)
This deals with the first case (calling ShowWindow(hwnd, SW_SHOWMINIMIZED) on a mouse event), but not the second (making the same call immediately after CreateWindow() without WS_VISIBLE).
Your hack thus gives the same results as mine (mine just stopped X11DRV_ShowWindow from doing extra stuff after XIconifyWindow).