Path: utzoo!attcan!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!pasteur!ucbvax!decwrl!jumbo!msm
From: msm@jumbo.dec.com (Mark S. Manasse)
Newsgroups: comp.windows.x
Subject: Re: Bugs in twm, wm, xprop, and xplaces (or my ignorance)
Message-ID: <13130@jumbo.dec.com>
Date: 28 Jun 88 18:00:57 GMT
References: <6562@jhunix.HCF.JHU.EDU> <6910001@hpfcdc.HP.COM> <8806280637.AA08968@godzilla.ele.toronto.edu>
Reply-To: msm@src.dec.com (Mark S. Manasse)
Organization: DEC Systems Research Center, Palo Alto
Lines: 18

The current draft ICCCM includes a property WM_STATE which is supposed
to be present on all top-level windows, at least whenever there's
a window manager running.  This property should appear only on the
top-level client windows.  Thus, a client window is one which either
has the WM_STATE property on it, or a mapped child of the root which
doesn't contain any window with WM_STATE on its property list.  The
only way this goes wrong is in the case of a window manager which
isn't managing any clients, but which maps a subwindow as a sort-of
pseudoroot, which hardly seems like an important enough case to get
all that worried about.

Some window managers don't put the frame windows on the root, but
instead add an extra window or two between the root and the frames.
This lets you select for SubstructureNotify on the root without hearing
about all the things that happen because the window manager asked
for them to happen.  Thus, some windows other than the root may contain
multiple application windows.  Don't be fooled, use recursion.

Mark