The state of WidgetWrapper "effectivelyVisible" is not properly maintained for a subcanvas

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The state of WidgetWrapper "effectivelyVisible" is not properly maintained for a subcanvas

Terry Raymond

Consider a view with subcanvas A which has a subcanvas B which as a component C.
The problem is that the effectivelyVisible of the widget wrapper of subcanvas B prevents the widgetState from
being updated.

Begin with everything visible.
Set subcanvas A to not visible. effectivelyVisible = nil
Ask for visiblity of component C, i.e. change its state. effectivelyVisible = false
Set subcanvas B to not visible. effectivelyVisible being false prevents updating of widgetState.
Set subcanvas A to visible.

Result: subcanvas B is still visible.

Recommened fix is to change WidgetWrapper>>forceVisibility: to;

forceVisibility: aBoolean
        widgetState isVisible: aBoolean.
        effectivelyVisible == aBoolean ifFalse:
                [effectivelyVisible := nil.
                self invalidate].

Terry
 
===========================================================
Terry Raymond
Crafted Smalltalk
80 Lazywood Ln.
Tiverton, RI  02878
(401) 624-4517      [hidden email]
<http://www.craftedsmalltalk.com>
===========================================================


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc