janet@bilby.cs.uwa.oz.au (Janet Jackson) (12/18/90)
I have an XView application with several panels. I am looking for a way to make "inactive" or "insensitive" (ie ignoring events) all the panel items except for a given item of a given panel. I _don't_ want to grab the server. My "grab" should only affect my application, not anything else that's running. Xt has a function XtAddGrab() that does what I want. I suspect this is possible because the Xt equivalent of panel items, at least when using Athena widgets, are windows. XView panel items are not. The best way I can think of is to install event handlers (using PANEL_EVENT_PROC) that ignore events for all the panels except the given one, and install an event handler for the given panel (again using PANEL_EVENT_PROC) that ignores events if the item is not the given one. Then to remove my "grab" I just un-install the handlers. I'm pretty sure this will do what I want, but it seems inelegant. Can anyone think of a better way? Thanks in advance, Janet Jackson (janet@cs.uwa.oz.AU) Department of Computer Science The University of Western Australia