|
Home About Us A-Z Index Search * Contact Us Register Login Press ShopThe Open Brand -- Problem Reporting and Interpretations System |
Problem Report 2140 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 2140.
Report 2140 Actions
Problem Report Number 2140 Submitter's Classification Test Suite problem State Resolved Resolution Rejected (REJ) Problem Resolution ID REJ.X.0607 Raised 1970-01-01 08:00 Updated 2003-03-13 08:00 Published null Product Standard Motif Toolkit Certification Program The Open Brand certification program Test Suite VSM version 4.0.0 Test Identification funcs/XmGetVisibility 1 Problem Summary PG4M.00003 Motif doesnot design to fulfill the requirement of the test case. When we check the visibility of a widget using XmGetVisibility, (XmGetVisibility is defined in Traversal.c in Xm lib) here are the ste... Problem Text
Motif doesnot design to fulfill the requirement of the test case.
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:
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) ;
}
For the function call _XmCreateVisibilityRect(wid, &rect), it first
check whether the widget is viewable, if a widget is realized and mapped then
it is viewable, so here all 3 buttons are viewable. Then this function will
create a rectangle from the widget , here is the code:
_XmSetRect( rectPtr, w) ;
Basically above function is get the widget size and its anchor.
The last thing to do for _XmCreateVisibilityRect is to compare this rectangle
against all its ancestors to see if there is any intersection. Here is the
code:
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, nobody here
can return False here because nobody has a intersection with the bulletin
board.
So the problem here is we only check the current being checked widget
against its ancestors, we don't care who else is on the top of current widget,
such as its siblings, and it is very hard to check whoever is on the current
widget.
This is a system design problem and the test case should not test this.Review Information
Review Type TSMA Review Start Date null Completed null Status Complete Review Recommendation No Resolution Given Review Response
We recommend this request be refused.
The XmGetVisibility specification describes XmVISIBILITY_FULLY_OBSCURED
in the Return Value section,
Indicates that the widget is not at all visible on the screen.
The submitter claims that on the test implementation the case where
a sibling widget obscures the specified widget is excluded from the
check. We can not find this statement anywhere in the specification.
The test expects a return value of XmVISIBILITY_FULLY_OBSCURED
for the specified widget on a call to XmGetVisibilty irrespective of
the widget(s) causing the invisibility.
Review Type SA Review Start Date null Completed null Status Complete Review Resolution Rejected (REJ) Review Conclusion
This request is refused.
Problem Reporting System Options:
- View Report 2140
- List All PRs
- Search Reports
- Email the System Administrator
- View the The Open Brand Interpretations Database User Manual
Contact the Certification Authority