[comp.windows.x] Popup problems under twm, tvtwm but not mwm

fbm@ptcburp.ptcbu.oz.au (Farrell McKay) (11/22/90)

Is there anyone out there who can confirm or deny the following statement.??

The correct behaviour of APPLICATION_MODAL popup widgets is at least
partly dependent upon which window manager one uses.  Specifically,
these widgets do not behave correctly under twm, or tvtwm.  :-(

My X program is based on the Motif 1.0 widget set.  I am using an
XmMessageDialog widget to stop the application and report fatal errors,
but without stopping any other applications.

Under mwm everything works just fine and dandy.  Under twm or tvtwm, however,
the popup is visible to the window manager, its appearance does not stop
events from being dispatched to the rest of the application, it does not
get iconified along with the rest of the application, it can be lowered
beneath the application's outermost window, etc. etc.  It would seem that
twm treats the popup as a modeless (instead of modal) popup.

In the twm man page there is a little sentence tucked away which states:

	"DecorateTransients:     This variable indicates that transient
	windows (those containing a WM_TRANSIENT_FOR property) should
	have titlebars.  By default, transients are not reparented."
			 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I suspect this is the crux of the problem.  Can I change this default
behaviour?  If so, how?

For full compatibility, I am using the R3 version of Xlib and 1.0 release
of Motif libXt and libXm.

----
      -m-------  Farrell McKay,                   fbm@ptcburp.ptcbu.oz.au
    ---mmm-----  Pyramid Technology Aust.,        ...!munnari!ptcburp.oz!fbm
  -----mmmmm---  Research Park, Bond University,  +61 75 950256
-------mmmmmmm-  Gold Coast, Qld 4229, AUSTRALIA  +61 75 522475 FAX

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

> Is there anyone out there who can confirm or deny the following
> statement.??

> The correct behaviour of APPLICATION_MODAL popup widgets is at least
> partly dependent upon which window manager one uses.

This is widget-set dependent.  There is no technical reason why this
should be true; I understand Motif cheats.  As you discovered.
(Personally, I'd file a bug report with your vendor, but then, I'm
weird anyway.)

> Under mwm everything works just fine and dandy.  Under twm or tvtwm,
> however, the popup is visible to the window manager, its appearance
> does not stop events from being dispatched to the rest of the
> application, it does not get iconified along with the rest of the
> application, it can be lowered beneath the application's outermost
> window, etc. etc.  It would seem that twm treats the popup as a
> modeless (instead of modal) popup.

Well, perhaps twm doesn't have the notion of a modal popup....

> In the twm man page there is a little sentence tucked away which
> states:

> 	"DecorateTransients:     This variable indicates that transient
> 	windows (those containing a WM_TRANSIENT_FOR property) should
> 	have titlebars.  By default, transients are not reparented."
> 			 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Is this window you're popping up a transient?  The notion of a
transient window is a technical term; I have no a priori reason to
think that the window you're popping up is or is not a transient.
(Your description makes it sound as though it isn't, because twm is
decorating it and the default is to not decorate transients.)

In short, Motif made a portability choice: they chose to design their
widget set such that it breaks when not using their window manager.  I
think this was a stupid move on their part; presumably they disagree.

					der Mouse

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

paul@x.co.uk (Paul Davey) (11/27/90)

In article <216@ptcburp.ptcbu.oz.au> fbm@ptcburp.ptcbu.oz.au (Farrell McKay) writes:

->   The correct behaviour of APPLICATION_MODAL popup widgets is at least
->   partly dependent upon which window manager one uses.  Specifically,
->   these widgets do not behave correctly under twm, or tvtwm.  :-(
->
->   My X program is based on the Motif 1.0 widget set.  I am using an
->   XmMessageDialog widget to stop the application and report fatal errors,
->   but without stopping any other applications.
->
->   Under mwm everything works just fine and dandy.  Under twm or tvtwm, however,

This problem is due to a bad design fault in Motif 1.0, viz assuming
that Mwm is the only window mangler (:-) that would be used.

1.1 corrects this behaviour by using XtAddGrab in the toolkit which
you can use with 1.0 to get the proper behaviour.

XtAddGrab is designed to work with cascades of widgets be these sub
menus or dialog boxes popped up from dialog boxes.
 
XtAddGrab has a flag to allow previous popup widgets in a cascade to
be excluded from a new `grab'.  (This `grab' is not an X grab, it's
done by the dispatcher within the intrinsics, ie at the client end).

--
 Regards,			 pd@x.co.uk          IXI Limited
	Paul Davey		 pd@ixi.uucp         62-74 Burleigh St.
				 ...!uunet!ixi!pd    Cambridge  U.K.
 "These are interesting times"   +44 223 462 131     CB1  1OJ