|Anonymous | Login||12-07-2021 18:57 UTC|
|Main | My View | View Issues | Change Log | Docs|
|Viewing Issue Simple Details [ Jump to Notes ]||[ View Advanced ] [ Issue History ] [ Print ]|
|ID||Category||Severity||Reproducibility||Date Submitted||Last Update|
|0000803||[Squeak] Morphic||major||always||01-07-05 06:57||02-16-08 01:57|
|Summary||0000803: Runaway polygons when resizing due to referencePosition feedback|
This affects versions of squeak before 3.9 also.
For this one
Get a polygon. Make it large. Drag a point far to the right..
Rotate it a little with the blue halo handle.
This sets the Reference Position.
Rotate it back to its original position and delete the right most point.
The ref point is now outside the bounds of the poly and to the right.
Add back a point to the poly but keep it to the left this time.
Get the halo and use the resize handle to grow the poly by moving the handle to the right just a little.
The feedback loop sends the every growing poly off the left of the screen..
.This is a very surprising and distressing behavior when it happens and your not expecting it.
This is clearly not what was intended.
Deleteing a point should remove the reference position property.
So should stopping the blue handle rotation if thats what caused it to be set.
Rather than relying on super the default reference position should be self vertices average rounded.
Same with the center of rotation.
I am looking for comments from more experienced hands before venturing a fix. The above changes seem logical to me but I don't know what features rely on the current contract. Any useful folklore out there?
(0001110 - 636 - 660 - 660 - 660 - 660 - 660)
I agree with removing the ref position (or at least resetting it) when adding or deleting a point. Perhaps something that would help, though, is to remember the offset between the default ref pos (average of vertices sounds OK to me) and the user-set point (if any). If the offset is close to 0 (as it would be if it were set from a default) we can remove it safely. If not, we can apply the offset to the new average after deleting (or adding!) a point.
The rotationCenter, of course, should refer to the same point.
Removing the ref pos on stopping rotation could be done the same way: just compare the ref pos with the default.
(0011816 - 187 - 187 - 187 - 320 - 320 - 320)
|See also bug 0001035, referencePosition is also invariant position when you change polygon extent... Even its default bounds center value makes the bug happen. Is this an intended behavior?|
|01-07-05 06:57||wiz||New Issue|
|01-29-05 17:46||ned||Note Added: 0001110|
|10-09-07 01:45||matthewf||Relationship added||related to 0005498|
|02-16-08 01:57||nicolas cellier||Note Added: 0011816|
| Mantis 1.0.8[^]
Copyright © 2000 - 2007 Mantis Group
44 total queries executed.|
34 unique queries executed.