public override void PropChanged(int hvo, int tag, int ivMin, int cvIns, int cvDel)
{
base.PropChanged(hvo, tag, ivMin, cvIns, cvDel);
if (IsFocusBoxInstalled && FocusBox.SelectedOccurrence != null
&& tag == SegmentTags.kflidAnalyses && FocusBox.SelectedOccurrence.Segment.Hvo == hvo)
{
int index = FocusBox.SelectedOccurrence.Index;
var seg = FocusBox.SelectedOccurrence.Segment;
if (!seg.IsValidObject || index >= seg.AnalysesRS.Count ||
(FocusBox.SelectedOccurrence.Analysis is IPunctuationForm))
{
// Somebody drastically changed things under us, maybe from another window.
// Try to fend off a crash.
TryHideFocusBoxAndUninstall();
return;
}
if (seg.AnalysesRS[index] != FocusBox.InitialAnalysis.Analysis)
{
// Somebody made a less drastic change under us. Reset the focus box.
FocusBox.SelectOccurrence(FocusBox.SelectedOccurrence);
MoveFocusBoxIntoPlace();
}
}
}