In LocatorPane, you can use CurrentValue["CurrentLocatorPaneThumb"] to get the index of the currently active thumb.
DynamicModule[{active = False, pts = {{1, 1}/2, {-1, 1}/2}},
Row[
{active,
LocatorPane[
Dynamic[pts,
With[{t=CurrentValue["CurrentLocatorPaneThumb"]},
If[t===1, pts[[1]]={0,1}*#[[1]], pts[[t]]=#[[t]]]
]&
],
Graphics[{Yellow, Disk[{0, 2]},
PlotRange -> 2
]
]
}
]
]
There is an example of this in the documentation for TrackingFunction, which is the way Dynamic's second argument is exposed to users of Manipulate, but I'll look into adding it to the LocatorPane reference page too.