werner@nikhefk.UUCP (Werner Vogels) (03/21/90)
A few ICCCM questions from my students:
1) ICCCM suggests that WM_TRANSIENT_FOR windows are children of the root.
We encountered this suggestion several times in other places but never
a statement that they must be children of the rootwindow. What are the
propeties of this kind of window and what are the requirments for handling
them?
2) According to ICCCM for each window only once a SubstructureRedirect or
a ResizeRedirect can be asked and only on windows that are
owned. What means owning a window in this context and what consequences
are there for the windowmanager ?
3) ICCCM suggests that a client should receive all button and keyevents on
the window from him or her that has the focus even if the windowmanager
has placed a grab on some keys or buttons. Does this mean that the
windowmanager has to send all events further to the client or only those
where no grab exists for ?
Werner H.P. Vogels
Software Expertise Centrum
Haagse Hogeschool, Intersector Informatica tel: +31 70 618419
Louis Couperusplein 2-19, 2514 HP Den Haag E-mail: werner@nikhefk.nikhef.nl
The Netherlands or werner@hhinsi.uucprws@EXPO.LCS.MIT.EDU (Bob Scheifler) (03/23/90)
ICCCM suggests that WM_TRANSIENT_FOR windows are children of the root.
We encountered this suggestion several times in other places but never
a statement that they must be children of the rootwindow.
They are "top-level" windows. They must start out as children of the root.
The WM can reparent them. (For example, we have toyed with the idea of
reparenting transients to be children of the "main" window's WM frame, as
one kind of (restrictive) policy.)
What are the
propeties of this kind of window and what are the requirments for handling
them?
This is stated, as (im)precisely as is reasonable, in the ICCCM. Dialog boxes
are one example.
According to ICCCM for each window only once a SubstructureRedirect or
a ResizeRedirect can be asked and only on windows that are
owned.
Yes, this is a restriction of the X protocol.
What means owning a window in this context and what consequences
are there for the windowmanager ?
The simplest rule is that the client that created the window owns it.
ICCCM suggests that a client should receive all button and keyevents on
the window from him or her that has the focus even if the windowmanager
has placed a grab on some keys or buttons. Does this mean that the
windowmanager has to send all events further to the client or only those
where no grab exists for ?
The basic requirement is that the window manager should provide a way of
sending an event from any key on the keyboard (or button on the pointer)
to the client window, except for those keys specifically labelled for
window manager functions. In normal situations this will happen
automatically. The major conflict is with passive grabs. The ICCCM
suggest a way for the window manager to provide a "quoting" mechanism
for passing through keys that have been grabbed.