(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@0. 0@50. 100@0}
color: Color red
borderWidth: 1
borderColor: (Color black))
addMorph:(PolygonMorph
vertices: {0@100. 100@100. 100@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@0. 0@50. 100@0}
color: (Color red alpha: 0.5)
borderWidth: 1
borderColor: (Color black))
addMorph:(PolygonMorph
vertices: {0@100. 100@100. 100@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