Path: utzoo!mnetor!uunet!husc6!cmcl2!nrl-cmf!ames!ucbcad!pasteur!ucbvax!ZERMATT.LCS.MIT.EDU!RWS From: RWS@ZERMATT.LCS.MIT.EDU (Robert Scheifler) Newsgroups: comp.windows.x Subject: GrabPointer again Message-ID: <880119192340.1.RWS@KILLINGTON.LCS.MIT.EDU> Date: 20 Jan 88 00:23:00 GMT References: <880107-095710-7037@Xerox> Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet Lines: 33 Sender: Michael_K._Powers.WBST139@Xerox.COM Date: Thu, 7 Jan 88 12:56 EST Now I want to temporarily ask for a button down event anywhere on the area defined by window A ignoring any siblings request for said event. Once I get the button down (I want to ignore the release) I wish to take that point and use it for the stake point of a rubberbanding line. I then wish to grab, for the area defined by A, all motion and button down events. The track point of the line will follow the pointer. Then when another button down is recieved the rubber line is done and things, event-wise, should return to the way they were before the first down event. The key thing here is that you want to ignore what your subwindows are asking for. Had you brought this up about a year ago, and got me thinking in the same direction, I would have suggested that perhaps the right thing would be to add a new window attribute do-not-descend: SETofDEVICEEVENT that was like the opposite of do-not-propagate, i.e., have the server walk down the tree first to figure out where the effective "source" window for the event was, stopping at the first window with a matching do-not-descend. For your scenario, you could then simply turn Button related events on and off in this mask on window A. Even though it is too late for 11.0, it still seems like an idea worth someone fleshing out (there are lots of interactions with other mechanisms that need to be considered). As it is, your choices seem limited to grabbing the pointer (which is inconsiderate of other applications, I agree) or getting whatever toolkit layer or widgets you are using to cooperate in within-client transformation of the events, to have them automatically propagated up the widget hierarchy (with coordinates appropriately massaged) to the desired parent.