mss+@ANDREW.CMU.EDU (Mark Steven Sherman) (12/10/87)
We have an application that uses several top-level windows: our mail system. One window holds the list of messages and current message while another is used for composing replies. The second one is popped up and down under program control (there are lots of options, but essentially, when you say "reply" it pops up and when the message has been succesfully sent it goes away). We implement the "hide" by unmapping the window (we create and map it the first time it is asked for and remap it thereafter as necessary). No window manager we have tried this with behaves very well. Some die in various ways (segmentation faults, input focus disappears forever, other failure modes). Some cause both windows to become unmapped when the unmap request is made on the reply window and then cause the first window (which was not unmapped) to be remapped and reexposed (causing quite a flash in the process). After the screen has settled down, sometimes we can continue with the first window, sometimes not. No one seems to just drop the one window that was unmapped. Another program, our basic editor, allows multiple windows be opened simultaneously and deleted, under program control. The window destruction operation causes similar flashing/crashing effect -- everything goes away and the remaining windows get remapped and redrawn. My questions are 1) is there something more rational than merely doing an unmap or destroy to get rid of the window (as appropriate) and 2) is there an inherint reason why every window manager seems to do this (does no other application have >1 top level window?) or is there something missing in the protocol to let a window manager behave more rationally? -Mark
RWS@ZERMATT.LCS.MIT.EDU (Robert Scheifler) (12/10/87)
Date: Wed, 9 Dec 87 16:13:59 -0500 (EST) From: Mark Steven Sherman <mss+@andrew.cmu.edu> No window manager we have tried this with behaves very well. I spent a few minutes using CLX to experiment with two windows. I can find no problems under uwm. (The latest) wm definitely gets confused about the unmap (no icon appears) and remap (frame comes back, but no window inside). Of course, I don't know what properties you have set on the windows (I didn't set any), and how that might affect the results. As usual, lack of information is likely to produce lack of results (perhaps you could produce a simplified program to demonstrate the problem). My questions are 1) is there something more rational than merely doing an unmap or destroy to get rid of the window (as appropriate) No. and 2) is there an inherint reason why every window manager seems to do this Shouldn't be.