A very old buglet

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

A very old buglet

Bob Arning-2
Morph>>layoutBounds: and Morph>>doLayoutIn: share the job of repositioning/sizing a morph, but only the latter invalidates changed areas. Sample below:

showLayoutProblem
"
Morph showLayoutProblem
"
    | paneHeight row searchCount |
    
    row  _ AlignmentMorph newRow.
    row addMorph: (StringMorph contents: 'hello').
    
    searchCount _ StringMorph new contents: '?'.
    row addMorphBack: (
        AlignmentMorph newColumn
            layoutInset: 5;
            color: Color tan;
            listCentering: #center;
            hResizing: #shrinkWrap;
            addMorph: searchCount;
            yourself
    ).
    
    paneHeight _ StringMorph new contents: '?'.
    row addMorphBack: (
        AlignmentMorph newColumn
            layoutInset: 5;
            color: Color gray;
            listCentering: #center;
            hResizing: #shrinkWrap;
            addMorph: paneHeight;
            yourself
    ).

    searchCount contents: 'ssss'.
    paneHeight contents: 'pppp'.
    Morph new
        extent: 300@100;
        color: Color white;
        addMorph: row;
        openInWorld.
    [
        (Delay forSeconds: 3) wait.
        paneHeight contents: 'p'.
    ] fork.



Reply | Threaded
Open this post in threaded view
|

Re: A very old buglet

David T. Lewis
A proposed fix is in the inbox in Morphic-dtl.634.

Dave

On Wed, Jan 09, 2013 at 07:33:18PM -0500, Bob Arning wrote:

> Morph>>layoutBounds: and Morph>>doLayoutIn: share the job of
> repositioning/sizing a morph, but only the latter invalidates changed
> areas. Sample below:
>
> showLayoutProblem
> "
> Morph showLayoutProblem
> "
>     | paneHeight row searchCount |
>
>     row  _ AlignmentMorph newRow.
>     row addMorph: (StringMorph contents: 'hello').
>
>     searchCount _ StringMorph new contents: '?'.
>     row addMorphBack: (
>         AlignmentMorph newColumn
>             layoutInset: 5;
>             color: Color tan;
>             listCentering: #center;
>             hResizing: #shrinkWrap;
>             addMorph: searchCount;
>             yourself
>     ).
>
>     paneHeight _ StringMorph new contents: '?'.
>     row addMorphBack: (
>         AlignmentMorph newColumn
>             layoutInset: 5;
>             color: Color gray;
>             listCentering: #center;
>             hResizing: #shrinkWrap;
>             addMorph: paneHeight;
>             yourself
>     ).
>
>     searchCount contents: 'ssss'.
>     paneHeight contents: 'pppp'.
>     Morph new
>         extent: 300@100;
>         color: Color white;
>         addMorph: row;
>         openInWorld.
>     [
>         (Delay forSeconds: 3) wait.
>         paneHeight contents: 'p'.
>     ] fork.
>

>