собсно решение нашлось. оч.простое и элегантное :)
ты рисуешь указатель на цель тогда, когда она находится на 1/8 от края экрана и дальше, т.е. за пределами прямоугольника.
минус заключался в том, что у прямоугольника есть углы :) при прохождении через которые указатель то гас, то снова появлялся.
предлагаю сделать следующее:
1. совсем убрать блок:
42 TargetHighlight.Inset = SCREEN_H/8
43 TargetHighlight.MinX = TargetHighlight.Inset
44 TargetHighlight.MaxX = SCREEN_W - TargetHighlight.Inset
45 TargetHighlight.MinY = TargetHighlight.Inset
46 TargetHighlight.MaxY = SCREEN_H - TargetHighlight.Inset
2. убрать строку:
102 if offsetX<TargetHighlight.MinX or offsetX>TargetHighlight.MaxX or offsetY<TargetHighlight.MinY or offsetY>TargetHighlight.MaxY then
3. добавить строку сразу после вычисления "g":
106 if g > TargetHighlight.Radius then
4. оценить профит :)