From 5ea29fbc743846e27214ce7f5b704c192a16c377 Mon Sep 17 00:00:00 2001 From: Kathy Date: Thu, 18 May 2017 14:13:23 +0000 Subject: [PATCH] B2017-084: Fix hang when closing PROMS with Word doc open & open/close of RO Editor B2017-084: Fix hang when closing PROMS with Word doc open & open/close of RO Editor. --- PROMS/VEPROMS User Interface/frmVEPROMS.cs | 10 +++++++++- .../DisplayTabControl.Designer.cs | 1 + PROMS/Volian.Controls.Library/DisplayTabControl.cs | 8 ++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index a462d367..1814c465 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -943,6 +943,7 @@ namespace VEPROMS // if ro.fst was 'updated' from the roeditor, enable the update ro.fst values on // the steptabribbon. + if (tc.ShuttingDown) return; if (SelectedStepTabPanel!=null && SelectedStepTabPanel.MyStepTabRibbon != null) SelectedStepTabPanel.MyStepTabRibbon.SetUpdRoValBtn(SelectedStepTabPanel.MyStepTabRibbon.NewerRoFst()); } @@ -1050,7 +1051,13 @@ namespace VEPROMS } private void frmVEPROMS_FormClosing(object sender, FormClosingEventArgs e) { - //tc.ShuttingDown = true;// This keeps PROMS from Hanging under certain circumstances + tc.ShuttingDown = true; // This keeps PROMS from Hanging under certain circumstances + foreach (DisplayTabItem dti in tc.MyBar.Items) + { + if (dti.MyDSOTabPanel != null) + dti.MyDSOTabPanel.CloseDSO(); + } + _MyLog.WarnFormat("frmVEPROMS_FormClosing"); if (MyParent == null) { if (MyActivityTimer != null) MyActivityTimer.Dispose(); @@ -2163,6 +2170,7 @@ namespace VEPROMS } void tc_Leave(object sender, EventArgs e) { + if (tc.ShuttingDown) return; tc.ShowCaret();// Show the pseudo cursor (caret) } void tc_Enter(object sender, EventArgs e) diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.Designer.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.Designer.cs index 09a02fbf..fe7ac331 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.Designer.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.Designer.cs @@ -13,6 +13,7 @@ namespace Volian.Controls.Library /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) { + ShuttingDown = true; // Cleanup Bars if (dotNetBarManager1.Bars != null) foreach (DevComponents.DotNetBar.Bar myBar in dotNetBarManager1.Bars) diff --git a/PROMS/Volian.Controls.Library/DisplayTabControl.cs b/PROMS/Volian.Controls.Library/DisplayTabControl.cs index a33d9fe3..a018e4c8 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabControl.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabControl.cs @@ -696,8 +696,16 @@ namespace Volian.Controls.Library get { return _PnlCaret; } } private static int trackerSC = 0; + private bool _ShuttingDown = false; + + public bool ShuttingDown + { + get { return _ShuttingDown; } + set { _ShuttingDown = value; } + } public void ShowCaret() { + if (_ShuttingDown) return; if (_MyStepRTB != null) { if (_MyEditItem.RTBLastFocus)