On 10.5.2, it appears that NSShadow has changed so that the shadow
draws at the offset sent to -setShadowOffset:.
In places where I was using NSShadow in the user interface for
subtle visual effects, the shadow is now drawn at a different
offset than on 10.4.x (and 10.5.0-1). In some cases this makes the
visual effect look bad, because I had tuned the offset so that it
looked good, not because of any particular fondness for the actual
values.
While I can't do anything about the binaries already shipped, I'd
like to fix my current source base. I still need to support (and
look good) on Tiger.
Can someone share what the mapping between input offset and
rendered shadow location was previous to 10.5.2?
That's definitely annoying. I make heavy use of NSShadow throughout
my custom UI (which renders text anywhere from 11 pt all the way up
to 48 point). My IB plug-ins allow me to set all attributes of the
shadow, so I'll play around with it on my 10.5.2 system and also
with 10.4.x (I have IB palettes for that OS). I'll then use
Photoshop to compare.
Hopefully this is deemed a bug. It's almost like the blur value is
off somehow though; the offsets seem OK to me at first glance.
Just filed bug <rdar://5744618>
My plea in the bug is to revert to the older drawing behavior ASAP
(even though technically the new behavior is treating the offsets
correctly). But, IMO, too many apps are out in the field relying on
the old style. As with Jim, all my shadows were "tuned" to look good
with the older rendering behavior. Now, all my shadows are lower and
further to the right. I use shadows on shapes, bezier paths and text.
Anyhow, I also proposed to add a new API ASAP as well. Something like:
-(void)setNewOffsetBehavior:(BOOL)flag
This would give us the best of both worlds. Basically what was done
in NSDateFormatter (setFormatterBehavior:)