[BUG][FIX] Drop shadows clipped incorrectly for translucent morphs

Jesse Welton jwelton at pacific.mps.ohio-state.edu
Wed Jul 13 01:03:31 UTC 2005


(Squeak 3.8, and probably all versions for the last 5 years.)

When a drop shadow is created for a translucent morph, the extent of
the form representing the shadow is set to that of the morph's bounds.
As a result, the shadow of any submorph which extends outside the
morph's bounds is clipped.  Solution: use the morph's fullBounds
instead of its bounds in Morph>>shadowForm and HandMorph>>shadowForm.
(Fix attached.)

I could not easily evaluate whether TextContained>>shadowForm has a
similar problem.

To see the problem, first evaluate

(PolygonMorph 
		vertices: {0 at 0. 0 at 50. 100 at 0}
		color: Color red
		borderWidth: 1
		borderColor: (Color black))
	addMorph:(PolygonMorph 
				vertices: {0 at 100. 100 at 100. 100 at 0}
				color: Color blue
				borderWidth: 1
				borderColor: (Color black));
	openInWorld.

Drag the morph around and observe its drop shadow.  This is what we
want.  Second, evaluate

(PolygonMorph 
		vertices: {0 at 0. 0 at 50. 100 at 0}
		color: (Color red alpha: 0.5)
		borderWidth: 1
		borderColor: (Color black))
	addMorph:(PolygonMorph 
				vertices: {0 at 100. 100 at 100. 100 at 0}
				color: (Color blue alpha: 0.5)
				borderWidth: 1
				borderColor: (Color black));
	openInWorld.

Drag the morph around and observe the unfortunate clipping.  Third,
file in the change set and bask in the relative glory of full,
luxuriant drop shadows for this and other translucent morphs.

-Jesse



More information about the Squeak-dev mailing list