Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0006536 [Squeak] Morphic minor always 06-12-07 00:58 04-18-10 21:51
Reporter wiz View Status public  
Assigned To laza
Priority normal Resolution fixed  
Status closed   Product Version 3.10
Summary 0006536: In 7105 Supplies Flaptab leaves glitches in wake when moved to left.
Description For this own open a fresh Squeak 7105

Drag the Supplies flaptab to the left. Note that blue vertical lines are being left behind. It will be more apparent if you set the desktop color to something light.

This will sometimes happen with outer flaps and sometimes not. It just so happens that conditions are right in this image for it to happen with the Supplies flap.



Additional Information This is another example of clipping box off by one errors.

I found it after working on 0006429 and thought I had introduced it with my fix until I found this example of the bug in a fresh image.

In my fixed version the bug cropped up with the Objects flap (and then after playing for a while went away.) So the bug actually has a "sometimes" quality about it.
Attached Files

- Relationships

SYSTEM WARNING: Creating default object from empty value

child of 0006511new  Mother of all Morphic Graphical off-by-one/fencepost -error reports. 
child of 0007212new  Mother for flaptab issues 

- Notes
(0010815 - 1660 - 1858 - 1858 - 1858 - 1858 - 1858)
wiz
06-16-07 03:56

Data points,

This is an elusive bug.

It happen in 7105 with the supplies flap but not the widgets flap.

It stops happening with the supplies flap if you duplicate the flap.

The supplies flap originally has an x extent that is a hair larger than 82.0.

An interesting way to examine the phenomenom is to create a script
that essentially says

supplies x := supplies x - 1 (movement to the left).

the flap will leave a solid trail of glitches as it moves right.

changing the parameter from x -1 to x -2 changes the glitch pattern.

The interesting thing is changing x-1 to x-1.05 creates an alternating bar of glitches and gaps. I got 12 glitches and 8 gaps. The gaps corresponded to positions from nn.00 downTo: nn.60 and the glitches from nn.55 to nn.05.

Duplicating the supplies flap changed the extent of both the duplicate and the original. The extra hair disappeared and the glitching behavior with it.

I could write the same kind of scripts for other flaps but no glitch pattern appeared.

I could crate a rectangle with the same initial bounds as the flap and create a script for it. No glitch pattern.

So my knowledge, so far, Is the glitches have something to do with the flap drawing routines. And the unusual extent of the supplies flap.

The nature of the glitch implies that the clipping box is noticably off by one somehow when the target moves left and has a postion with a fraction of less than about half a pixel.

So far I have come across no obvious suspects from code reading.

The bug itself is not very important or interesting. The reason for it being there is what I am curious about.
 
(0013640 - 107 - 119 - 119 - 119 - 119 - 119)
laza
04-08-10 09:56

I can't reproduce this in the latest trunk image.
Do you still see this problem?
Can we close this issue?
 
(0013682 - 349 - 487 - 487 - 487 - 487 - 487)
wiz
04-09-10 22:23
edited on: 04-11-10 01:28

Ha. Current release candidate does seem to have SOLVED this problem.

In fresh sq 9926

Open and pin flaps menu
Show flaps
Using halos get viewer for supply flap

make script

flap right increase by 1

run

make script

flap right decrease by 1
run

flap moves leaves no gribbles.

AFAICT from this problem is gone. (for now)

 
(0013683 - 336 - 364 - 364 - 364 - 364 - 364)
laza
04-10-10 08:16

After resizing the SqueakWindow several times and resizing a FlapTab several times I had it, that the FlapTab had bounds <> fullBounds and left "gribbles" on the screen.
I think an easy way to fix this, is to prevent FlapTabs to have Floats as bounds after a change of the SqueakWindow.
Could you see if this solves the issue for you?
 
(0013684 - 63 - 63 - 63 - 63 - 63 - 63)
laza
04-10-10 08:22

BTW, this will only work with FlapTabs created after the update
 
(0013685 - 571 - 637 - 637 - 776 - 776 - 776)
wiz
04-11-10 01:38

Hi laza, please note I corrected my earlier comment. I thought the image solved this.

If you were able to recreate the problem you've been cleverer than I.

IIRCC The original problem was a layout recursion based on a comparison of a raw and rounded position of the tab.

Remember 0006486 resolved laza In 7097 Resizing the objects flaptab can result in a infinite loop (i.e. squeak freezes)

There are change sets there that should be a basis for fixing this problem also?
I don't recall now what I did then. I do remember I thought well of it.

Cheers --Jer
 
(0013690 - 783 - 851 - 851 - 851 - 851 - 851)
laza
04-13-10 11:39

Hi Jerome!

I believe. that the problems of infinite recursion and leaving "gribbles" on the screen were because of morphs (flaptabs) had floats as bounds.

Comparing floats to be equal is a problem and there was a slight chance that the recursion would not stop (see the testcase). I replaced the check for equality with a closeTo: check and removed my half-ass attempt to fix this with rounded.

There was also a chance that FlapTabs left "gribbles" (1 pixel width) on the screen. This happend when they had floats as bounds and bounds was slightly larger than fullbounds. Now hopefully this will not happen anymore, because FlapTabs have integer bounds after the SqueakScreen changes.

I'm sure there is room for optimization or improvement, but that should do it for 4.1.
 
(0013691 - 103 - 109 - 109 - 109 - 109 - 109)
laza
04-13-10 11:40

Now with the heavy testing in progress, no complaints about this bug.
So I dare to resolve this issue.
 

- Issue History
Date Modified Username Field Change
06-12-07 00:58 wiz New Issue
06-12-07 00:59 wiz Relationship added child of 0006511
06-16-07 03:56 wiz Note Added: 0010815
10-13-08 03:00 wiz Relationship added child of 0007212
04-08-10 09:56 laza Note Added: 0013640
04-08-10 09:56 laza Status new => feedback
04-09-10 22:23 wiz Note Added: 0013682
04-10-10 08:16 laza Note Added: 0013683
04-10-10 08:16 laza Assigned To  => laza
04-10-10 08:16 laza Status feedback => testing
04-10-10 08:22 laza Note Added: 0013684
04-11-10 01:28 wiz Note Edited: 0013682
04-11-10 01:38 wiz Note Added: 0013685
04-13-10 11:39 laza Note Added: 0013690
04-13-10 11:40 laza Status testing => resolved
04-13-10 11:40 laza Fixed in Version  => trunk
04-13-10 11:40 laza Resolution open => fixed
04-13-10 11:40 laza Note Added: 0013691
04-18-10 21:51 andreas Status resolved => closed


Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
82 total queries executed.
52 unique queries executed.
Powered by Mantis Bugtracker