jeff@amber.ci.com (Jeff deRienzo) (05/14/88)
I've not been successful in getting expose events to propagate up the window tree in X11R2. It seems that this should be possible. For example, suppose I open a parent window with ExposureMask set in its do_not_propagate attribute and a child window with NoEventMask in its do_not_propagate attribute. If I then select expose events on the parent I expect to also receive expose events which originated in the child to be propagated to the parent. This doesn't happen. (X11R2 on Apollo and Microvax/Ultrix) After trying a few different variations of do_no_propagate_mask and event_mask combinations which should have delivered the child's expose events to the parent but didn't, I decided to look at the server code. Window exposures get handled in the mi code by miexpose.c. They're vectored through miWindowExposures(). miWindowExposures() packages the expose for the window in which it originated and then calls into the dix code to deliver the events by means of DeliverEvents() in events.c. The first line of DeliverEvents() is a comment: /* not useful for events that propagate up the tree */ and that appears to be true. Am I misinterpreting the documentation in assuming that exposures should be propagated under the above circumstances? Has anyone else run into this? Has anyone been able to get exposures to propagate to parent windows using the sample server? (I've made a terrible hack in the server which does allow the expose events to propagate, but I'd much prefer a more ubiquitous official solution.) Advance thanks, Jeff jeff@dandelion.CI.COM derienzo@eagle.MIT.EDU
RWS@ZERMATT.LCS.MIT.EDU (Robert Scheifler) (05/14/88)
Date: 13 May 88 19:40:09 GMT From: necntc!dandelion!amber!jeff@husc6.harvard.edu (Jeff deRienzo) Am I misinterpreting the documentation in assuming that exposures should be propagated under the above circumstances? Yes. As far as I know, it is no where stated that exposure events propagate in V11. Only device events propagate.