[comp.windows.x] restrictions on removing RootWindow properties?

alan@cogswell.Jpl.Nasa.Gov (Alan S. Mazer) (10/24/90)

Thank you to everyone who suggested creating new properties for the root
window as a way of maintaining keyed data.  It seems to work well.  But I
have another question.

If client A creates a property on the root window and then exits, should
a new client, client B, be allowed to remove it?  I think so, but it
sure doesn't seem to work.  I can't find any documentation on the "correct"
behavior in this case.  If the property is protected against removal by
other clients, is there some way to get around this?

-- 

-- Alan			       # My aptitude test in high school suggested that
   ..!ames!elroy!alan	       # I should become a forest ranger.  Take my
   alan@elroy.jpl.nasa.gov     # opinions on computers with a grain of salt.

mouse@LARRY.MCRCIM.MCGILL.EDU (10/26/90)

> If client A creates a property on the root window and then exits,
> should a new client, client B, be allowed to remove it?  I think so,
> but it sure doesn't seem to work.  I can't find any documentation on
> the "correct" behavior in this case.  If the property is protected
> against removal by other clients, is there some way to get around
> this?

From the protocol document:

	ChangeProperty
[...]
	     The lifetime of a property is not tied to the storing
	     client.  Properties remain until explicitly deleted, until
	     the window is destroyed, or until server reset [...].
[...]
	DeleteProperty
[...]
	     This request deletes the property from the specified
	     window if the property exists and generates a
	     PropertyNotify event on the window unless the property
	     does not exist.

In particular, there is no restriction that the client doing the delete
have any particular relationship to the client that did the create.  In
fact, if properties were protected from tampering by other clients,
then once a client exits, its properties would be cast in stone: the
client no longer exists, so it can't touch them, but neither can
anybody else....

As to what's going wrong, I can't even hazard a guess without at least
knowing in what way it doesn't work (eg, X error?  silent failure?
server crash?) and possibly seeing the relevant code.

					der Mouse

			old: mcgill-vision!mouse
			new: mouse@larry.mcrcim.mcgill.edu