nanogui: Window Manager Queries
Subject:
Re: [nanogui] Window Manager Queries
From:
Jordan Crouse ####@####.####
Date:
13 Dec 2001 17:56:45 -0000
Message-Id: <E16Ea59-0001Ie-00@ns.censoft.com>
> but I was more hoping to pass the icons over
> to an icon manager to handle... a seperate process, currently.... Any
> brainwaves? :)
So you have a seperate process that acts as a "launcher", and you want to
inform that process when the program is minimized, or do you actually want a
seperate process that only handles minimized icons?
Either way it will be tough because the window manager will aways do a better
job of handling the icons than any other process. Remember that each
application is reparented into a frame that gets handled exclusively by the
window manager. This all works out well when the application is first
launched, because it just gets reparented from the ROOT_WINDOW_ID. But if
you choose to unmap the application for some reason, then you will be unable
to remap it, because its parent (the frame) will be unmapped. And because
you have no knowlege of the parent in a seperate process, you will be unable
to remap the window.
The same problem happens with toplevel dialog boxes that are reused. It only
makes sense for the program to create the dialog box once, and then map it or
unmap it as needed. But when you unmap it, the window manager unmaps the
frame as well. (otherwise, you would be stuck with the frame on the screeen.
Quite ugly).
IPC is a possibility, but thats alot of overhead for this problem. X has a
more elegant solution - It has an event called MapRequest which gets sent to
an upper level window when a child wants to be mapped. The upper level
window can then choose to acccept or deny the request. This is how X window
managers get around this tricky problem.
What we need to do is investigate how MapRequest works in X, and try to
emulate it here.
Jordan