gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Window manager interaction


From: Wolfgang Lux
Subject: Re: Window manager interaction
Date: Fri, 16 Oct 2009 20:16:24 +0200

Fred Kiefer wrote:

Richard Frith-Macdonald schrieb:
[...]
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?

First off, we already have a related bug report for this problem, #18199 and perhaps it would be best to add any further comments there, to make
it easier to reference things later on.

Your idea sounds feasible to me, we will of course need to add a bit
more logic to it, for example only to minimize the hidden app icon
window when there is no other window. And putting it off screen may not
be enough for some window managers to not display it in there program
bar or what ever they use. Also we need to make sure that the app icon
window wont get show after activating its mini window. And of course
this will have to work with all window managers out there...

IMHO Richard's proposal is much too complicated. I'd suggest something
radically simpler: If an application does not have an appicon the hide
command should just minimize all application windows. As far as I
understand this also was the solution used by Apple in OpenStep 4.2 for
Windows. See, e.g., http://support.apple.com/kb/TA45871 and search for
the term "hide" (with quotation marks) in that document. This can be
implemented trivially with the three-line patch below in NSApplication.m.

Attachment: NSApp.patch
Description: Binary data



Wolfgang


reply via email to

[Prev in Thread] Current Thread [Next in Thread]