private void SetupTranslationPrompt(SelectionHelper helper, int flid)
{
IVwSelection sel;
m_vc.SetActiveFreeform(helper.LevelInfo[0].hvo, flid, helper.Ws, helper.NumberOfPreviousProps);
helper.SetTextPropId(SelectionHelper.SelLimitType.Anchor, kTagUserPrompt);
helper.SetTextPropId(SelectionHelper.SelLimitType.End, kTagUserPrompt);
helper.NumberOfPreviousProps = 0; // only ever one occurrence of prompt.
helper.SetNumberOfPreviousProps(SelectionHelper.SelLimitType.End, 0);
// Even though the helper method is called MakeRangeSelection, it will initially make
// an IP, because we haven't set any different offset for the end.
// Since it's at the start of the prompt, we need it to associate with the prompt,
// not the preceding (zero width direction-control) character.
helper.AssocPrev = false;
try
{
sel = helper.MakeRangeSelection(m_rootb, true);
sel.ExtendToStringBoundaries();
}
// Prevent the crash described in LT-9399 by swallowing the exception.
catch (Exception exc)
{
if (exc != null)
Debug.WriteLine(String.Format(
"InterlinDocChild.SelectionChanged() trying to display prompt for empty translation: {0}", exc.Message));
}
}