I would like to make an addition to my previous proposal. With the above patch applied, the only annoying behaviour left under WindowMaker is the presence of the (albeit off-screen) dock window. That window shows up in the list while tabbing between windows on a workspace, for example. Attached is a patch which tries to circumvent this.
QT only updates a window if it is not hidden. After showing the dock window in the ordinary fashion, it is now immediately withdrawn with the Xlib-native XWithdrawWindow(). This tricks QT into thinking that the window is still shown, while at the same hiding it from the window manager.
diff -u plugins/qt-gui/src/wharf.cpp plugins/qt-gui/src/wharf.cpp --- plugins/qt-gui/src/wharf.cpp 2 Apr 2006 13:23:04 -0000 +++ plugins/qt-gui/src/wharf.cpp 3 Apr 2006 07:31:04 -0000 @@ -115,6 +115,9 @@ setMask(*wharfIcon->vis->mask()); move(-100,-100); show(); +#ifndef USE_KDE + XWithdrawWindow(dsp, win, XScreenNumberOfScreen(DefaultScreenOfDisplay(dsp))); +#endif }