http://code.google.com/p/chromium/issues/detail?id=36485
Briefly: Suppose you want to do a conversion to or from an NSView's
coordinate system to the coordinate system of its window. NSView has a
tempting set of methods:
convertPointFromBase:
convertPointToBase:
convertRectFromBase:
convertRectToBase:
convertSizeFromBase:
convertSizeToBase:
DO NOT USE THEM!
If you want to convert to/from the window's base coordinate system, use the
original -convert[xx]:[to|from]View: and pass in a nil view.
What those "base" calls do is a conversion to the "base" coordinate system
which isn't the "window base" coordinate system. This will not get you the
coordinates you want. Don't use them. (The "base" coordinate system has to
do with resolution independence; go look it up.)
The confusion is compounded by the "base" methods on NSWindow:
convertBaseToScreen: and convertScreenToBase:. Those are conversions betwwen
the window base system and screen coordinates, and are what you want to use
for that case.
Avi