[comp.windows.x.motif] BackgroundPixmap resource in XmManager widget

steve@mnetor.UUCP (Steve Rees) (05/30/91)

I'm having an interesting problem with the XmNbackgroundPixmap resource
in subclasses of the XmManager widget (e.g. RowColumn.)  It's default value 
(in the documentation and in real life [i.e. in appearance and through 
XtGetValues()]) is XmUNSPECIFIED_PIXMAP -- no problemo.

I can use XtSetValues() to change it to something else -- also, no problemo.
But, if I attempt to set it back to XmUNSPECIFIED_PIXMAP, I get a Motif 
warning "Cannot set pixmap resource to unspecified."  The SetValues()
routine in Manager checks for new value = UNSPECIFIED_PIXMAP, and sets the 
pixmap back to current value.  Why does it do this?  There's no explanation
given anywhere.  Plus, other Motif widgets (e.g. label) will let you go back to
unspecified with no debate.  Is it something to do with its responsibilities
as a manager?

But wait! There's more... The intention of the SetValues() code in Manager
seems to be to reject UNSPECIFIED_PIXMAP and instead keep the old pixmap, and
in fact, if you do an XtGetValues(), you get the old pixmap back.  
Unfortunately, the screen shows _no_pixmap_ -- it's like the UNSPECIFIED_PIXMAP
succeeded!  So, not only does the Manager backgroundPixmap policy seem 
braindamaged, it's also buggy! (BTW, an explicit XtSetValues() with the old 
pixmap is ignored, since the widget thinks it's already displaying the old 
pixmap.)

Anybody have any suggestions?  Reasons for XmManager's policy?

We're using Motif 1.1.1.

-- 
    Steve Rees
{uunet|utzoo}!mnetor!steve or (better) steve%mnetor.uucp@uunet.uu.net
Ma Bell: +1 416 475 8980  ext. 322
					Why isn't ping pong called pik pok?