diff --git a/.vs/AIProofread/v17/.suo b/.vs/AIProofread/v17/.suo index 6ec16fe..f756310 100644 Binary files a/.vs/AIProofread/v17/.suo and b/.vs/AIProofread/v17/.suo differ diff --git a/AIProofread/Model/DocumentInfo.cs b/AIProofread/Model/DocumentInfo.cs index 302a4dd..1d8181d 100644 --- a/AIProofread/Model/DocumentInfo.cs +++ b/AIProofread/Model/DocumentInfo.cs @@ -188,7 +188,7 @@ namespace AIProofread.Model { try { - Logger.Debug("激活 for " + CurrentDocument.FullName + " 没有 visible is " + PaneVisible); + Logger.Debug("激活 for " + CurrentDocument.Name + " 没有 visible is " + PaneVisible); ShowDocumentStatus("Active"); IsActive = true; if (Config.IS_WPS && null != TaskPane) @@ -212,9 +212,10 @@ namespace AIProofread.Model { PaneVisible = TaskPane.Visible; TaskPane.Visible = false; - Logger.Debug("取消 for " + CurrentDocument.FullName + " current visible " + PaneVisible); + Logger.Debug("取消 for " + CurrentDocument.Name + " current visible " + PaneVisible); } - }catch (Exception e) + } + catch (Exception e) { Logger.Error("Deactive Error", e); } @@ -227,7 +228,7 @@ namespace AIProofread.Model // 判断TaskPane是否已经释放 if (null == TaskPane) return; if (TaskPane.Control.IsDisposed) return; - + ProofreadMainControl control = (ProofreadMainControl)TaskPane.Control; control.ResetWeb(); @@ -304,22 +305,28 @@ namespace AIProofread.Model // if (Globals.ThisAddIn.ribbon != null) { - Globals.ThisAddIn.ribbon.BtnShowPanel.Enabled = !PaneVisible && Proofread; + var visible = TaskPane.Visible; + Globals.ThisAddIn.ribbon.BtnShowPanel.Enabled = !visible && Proofread; Globals.ThisAddIn.ribbon.SetCommonBtnStatus(!Proofreading); } } private void TaskPane_VisibleChanged(object sender, EventArgs e) { - if (Config.IS_WPS) + // 异步等待500ms + System.Threading.Tasks.Task.Delay(1000).ContinueWith(t => { - if(CurrentDocument == Globals.ThisAddIn.ActiveDocument) + Logger.Debug($"2==> VisibleChanged {CurrentDocument.Name} is {TaskPane.Visible}"); + if (Config.IS_WPS) { - Logger.Debug($"VisibleChanged ${CurrentDocument.Name} is {TaskPane.Visible}"); - // 如果已经隐藏 则记录隐藏用于(WPS)多面板的切换的处理 - PaneVisible = TaskPane.Visible; + if (CurrentDocument == Globals.ThisAddIn.ActiveDocument.CurrentDocument) + { + // 如果已经隐藏 则记录隐藏用于(WPS)多面板的切换的处理 + PaneVisible = TaskPane.Visible; + } } - } + Globals.ThisAddIn.ActiveDocument?.CheckBtnStatus(); + }); CheckBtnStatus(); //Globals.ThisAddIn.ribbon.BtnShowPanel.Enabled = !TaskPane.Visible && Proofread; }