diff --git a/Src/LexText/Interlinear/SandboxBase.SandboxVc.cs b/Src/LexText/Interlinear/SandboxBase.SandboxVc.cs index 292501a557..7665ff8bee 100644 --- a/Src/LexText/Interlinear/SandboxBase.SandboxVc.cs +++ b/Src/LexText/Interlinear/SandboxBase.SandboxVc.cs @@ -550,6 +550,14 @@ private void DisplayWordPOS(IVwEnv vwenv, int hvo, int ws, int choiceIndex) vwenv.set_IntProperty((int)FwTextPropType.ktptEditable, (int)FwTextPropVar.ktpvEnum, (int)TptEditable.ktptNotEditable); + int wordPosHvo = vwenv.DataAccess.get_ObjectProp(hvo, ktagSbWordPos); + if (vwenv.DataAccess.get_IntProp(wordPosHvo, ktagSbNamedObjGuess) == 1) + { + // Show that the word category is guessed. + vwenv.set_IntProperty((int)FwTextPropType.ktptBackColor, + (int)FwTextPropVar.ktpvDefault, + InterlinVc.MachineGuessColor); + } AddOptionalNamedObj(vwenv, hvo, ktagSbWordPos, ktagMissingWordPos, kfragMissingWordPos, ktagWordPosIcon, ws, choiceIndex); } diff --git a/Src/LexText/Interlinear/SandboxBase.cs b/Src/LexText/Interlinear/SandboxBase.cs index 3b0f1ca3b3..4e581711d6 100644 --- a/Src/LexText/Interlinear/SandboxBase.cs +++ b/Src/LexText/Interlinear/SandboxBase.cs @@ -562,6 +562,11 @@ public bool UsingGuess get; set; } + public bool UsingWordCatGuess + { + get; set; + } + /// /// Indicates the direction of flow of baseline that Sandbox is in. /// (Only available after MakeRoot) @@ -1581,6 +1586,7 @@ protected virtual int CopyLexPosToWordPos(bool fCopyToWordCat, int hvoMsaPos) int hvoSbWordPos = m_caches.DataAccess.get_ObjectProp(RootWordHvo, ktagSbWordPos); m_caches.DataAccess.SetObjProp(RootWordHvo, ktagSbWordPos, hvoPos); m_caches.DataAccess.SetInt(hvoPos, ktagSbNamedObjGuess, 1); + UsingWordCatGuess = true; m_caches.DataAccess.PropChanged(RootBox, (int)PropChangeType.kpctNotifyAll, RootWordHvo, ktagSbWordPos, 0, 1, (hvoSbWordPos == 0 ? 0 : 1)); } @@ -4045,7 +4051,7 @@ internal void ClearAllGlosses() /// public bool ShouldSave(bool fSaveGuess) { - return m_caches.DataAccess.IsDirty() || (fSaveGuess && UsingGuess); + return m_caches.DataAccess.IsDirty() || (fSaveGuess && (UsingGuess || UsingWordCatGuess)); } /// @@ -4064,6 +4070,7 @@ public AnalysisTree GetRealAnalysis(bool fSaveGuess, out IWfiAnalysis obsoleteAn CurrentAnalysisTree.Analysis = analMethod.Run(); obsoleteAna = analMethod.ObsoleteAnalysis; UsingGuess = false; + UsingWordCatGuess = false; MarkAsInitialState(); } return CurrentAnalysisTree;