|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2132 Details
Show help | Quick Search | Submit a Test Suite Support Request | Click here to view your privileges
This page provides all information on Problem Report 2132.
Report 2132 Actions
Problem Report Number 2132 Submitter's Classification Minor System Fault State Resolved Resolution Minor System Fault (MSF) Problem Resolution ID MSF.X.0090 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published 1997-12-31 08:00 Expiry Date 1998-12-31 Product Standard Motif Toolkit Certification Program The Open Brand certification program Test Suite VSM version 4.0.0 Test Identification vsm4/tset/funcs/XmGetVisibility test1A Problem Summary MSF4M.00002 Function XmGetVisibility currently doesn't fulfill the requirement it says on the spec. When we check the visibility of a widget using XmGetVisibility, (XmGetVisibility is defined in Traversal.c in X... Problem Text
Function XmGetVisibility currently doesn't fulfill the requirement
it says on the spec.
When we check the visibility of a widget using XmGetVisibility,
(XmGetVisibility is defined in Traversal.c in Xm lib) here are the steps
we check through(Please look at the code in Traversal.c for more detailed
infomation):
We check whether this is a valid widget or not, and check whether we
can create a visiable rectangle on this widget, if either one is wrong, we
return XmVISIBILITY_FULLY_OBSCURED, otherwise we continue, the code is :
if( !wid
!_XmCreateVisibilityRect( wid, &rect) )
{
return( XmVISIBILITY_FULLY_OBSCURED) ;
}
Here "wid" is valid. Functional call _XmCreateVisibilityRect will
X/Open Waiver Reference: Page: 1
WAIVER DOCUMENT X/Open Waiver Reference:
return a rectangle whose width and height are the same as this widget which
we passed it in to XmGetVisibility. So this function XmGetVisibility will
return XmVISIBILITY_UNOBSCURED in our first failed place in this journal file.
Functional call _XmCreateVisibilityRect will return true in this case.
Function _XmCreateVisibilityRect is defined in the same file
Traversal.c in lib Xm.
For functional call _XmCreateVisibilityRect(wid, &rect), it first
check whether the widget is viewable, if a widget is realized and mapped then
it is viewable, this is done when it calls _XmIsViewable, here all 3 buttons
are viewable when we reach the first failed test case.
Then _XmCreateVisibilityRect will create a rectangle from the widget
which we are testing(We pass this widget to functional call XmGetVisibility).
Here is the code:
.......................
else
{ _XmSetRect( rectPtr, w) ;
}
......................
Function _XmSetRect is defined in the same file Traversal.c, its
purpose is to get the widget size and its anchor.
The last thing to do in function _XmCreateVisibilityRect is to compare
this rectangle against all its ancestors to see if there is any intersection.
Here is the code:
.......................................................
/* Process all widgets, excluding the shell widget.
*/
while( (w = XtParent( w)) && !XtIsShell( w) )
{
if( !_XmIsViewable( w)
!_XmIntersectRect( rectPtr, w, rectPtr) )
{
_XmClearRect( rectPtr) ;
return( False) ;
}
}
.......................................................
All three buttons are mapped and realized on the bulletin board, so
_XmIsViewable and _XmIntersectRect both return true here, so functional call
_XmCreateVisibilityRect return true.
_XmIntersectRect is defined in TraversalI.c.
The problem here is we only check the currently being checked widget
against its ancestors, we don't care who else is on the top of current widget,
such as its siblings(This is the actual situation in our test case), and it
is very hard to check whoever is on the current widget(which means we have
search the whole widget tree start from root window, this could be the reason
that the current Motif hasn't implemented the requirements it stated in the
spec for XmGetVisibility).
X/Open Waiver Reference: Page: 2
WAIVER DOCUMENT X/Open Waiver Reference:
This is a system implementation problem.Review Information
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Minor System Fault (MSF) Review Conclusion
A Temporary Waiver is granted.
Problem Reporting System Options:
- View Report 2132
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority