[...]
The documentation says:
GSSuppressAppIcon
A boolean value, NO by default. Specifies wether the application
icon
window should not be displayed. Set to YES for background server
applications.
I think the expectation is that, if you have set
GSSuppressAppIcon to
YES, it's because your app is not intended to appear on-screen (I
think that's what 'background server' means), or that your window
manager will be handling activation of the app some other way.
The other default (GSAppOwnsMiniwindow) is the one which is supposed
to control whether miniwindows are controlled by the application
or by
the window manager, and if that's set to 'NO' then (as I understand
it) the miniwindows should not appear on the desktop. I'm not sure
how well this works though.
I haven't looked at the code for ages, but I suspect that the
application icon window is handled as a special case and
GSAppOwnsMiniwindow does not effect it (shouldn't that be
GSAppOwnsMiniWindow rather than GSAppOwnsMiniwindow anyway?).
I think the current code probably does the wrong thing with the
app icon
window... if it's suppressed then the app just doesn't create it,
but it
might make more sense for it to be created off-screen ... so that we
still have the icon window but it's unseen.
Then, we would always be able to minimise the icon window when we
hide
the app. If we did that then presumably the window manager would
display a reference to the minimised icon window in whatever
manner it
normally displays minimised windows, and the window manager's
mechanism
for unminimising it would be able to unhide the application (we could
have the gui watch for the icon window being unminimised and
automatically unhide the app at that point).
Would this be a workable way of curing this particular window manager
interaction issue?