[comp.windows.x] "modal" modes

cflatter@ZIA.AOC.NRAO.EDU (Chris Flatters) (11/01/90)

> The question is, can this be done using some other method besides
> that provided by mwm?  System modals are easy -- just grab the
> pointer and release it when you're done.  Applciation grabs, are
> more difficult.  I haven't seen anything in any of the X or Xt
> docs that specify a method for XGrabPointer or anything else to
> achieve this.  I am trying to read the "input focus" section of
> the ICCCM, but I don't see it addressing this issue at all.

Surely application modals correspond to the locally active input model
in section 4.1.17 of the ICCCM while system modal correspond to the
globally active input model.  Am I missing something obvious?

			Chris Flatters

etaylor@wilkins.iaims.bcm.tmc.edu (Eric Taylor) (11/01/90)

Use XtNextEvent and intercept all pointer events yourself.
Massage the event, by resetting the window field, and x,y
values.  Send back down the line with XtDispatchEvent.

With any other event, just use XtDispatchEvent directly.

Disclaimer:  I have not tried this myself, but it seems sound.
-- 
					Eric Taylor
					Baylor College of Medicine
					etaylor@wilkins.bmc.tmc.edu
					(713) 798-3776
--
					Eric Taylor
					Baylor College of Medicine
					etaylor@wilkins.bmc.tmc.edu
					(713) 798-3776

mouse@LARRY.MCRCIM.MCGILL.EDU (11/04/90)

> Motif has two "modal" modes -- application and system modals.  [...]
> System modals are just like pointer grabs.  [...]

System modals are just like pointer grabs?  I thought system modals
were supposed to prevent interaction with any application other than
the one putting up the dialog.

> The question is, can [modal dialogs] be done using some other method
> besides that provided by mwm?  System modals are easy -- just grab
> the pointer and release it when you're done.
(If that's what system modals really are.)
> Applciation grabs, are more difficult.  I haven't seen anything in
> any of the X or Xt docs that specify a method for XGrabPointer or
> anything else to achieve this.

At the Xlib level, the concept of application modal simply does not
exist; it's up to the application to ignore (or defer, depending on the
desired semantics) events arriving from inappropriate windows.  (I
don't know what the Xt view is.)

					der Mouse

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

mouse@LARRY.MCRCIM.MCGILL.EDU (11/04/90)

>> The question is, can [modal dialogs] be done using some other method
>> besides that provided by mwm?

> Surely application modals correspond to the locally active input
> model in section 4.1.17 of the ICCCM while system modal correspond to
> the globally active input model.  Am I missing something obvious?

I think so.  You're considering only keyboard input....

					der Mouse

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