From c159a9889f8707ce7a0df6797a2e55931b8c392d Mon Sep 17 00:00:00 2001 From: Rich Date: Mon, 1 Feb 2016 21:29:03 +0000 Subject: [PATCH] Pause timer to refresh the treeview while items are being added. Sometimes the Multiple Cursors are diplayed. One is a proper cursor that moves with the right and left arrow keys. The other one can appear anywhere in the text or even bettwen text windows and does not move with the arrow keys. This has been fixed. --- PROMS/VEPROMS User Interface/frmVEPROMS.cs | 28 +++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index 1d0f20ff..afa88d72 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -320,8 +320,28 @@ namespace VEPROMS } SetupFolder(1); tc.VersionID = 0; + tv.PauseRefresh += tv_PauseRefresh; + tv.UnPauseRefresh += tv_UnPauseRefresh; + } + private bool _PauseRefresh = false; + public bool PauseRefresh + { + get { return _PauseRefresh; } + set { + //_MyLog.WarnFormat(value ? "=== Pause" : "=== UnPause"); + _PauseRefresh = value; + } + } + void tv_UnPauseRefresh(object sender, vlnTreeSectionInfoEventArgs args) + { + //_MyLog.WarnFormat("Unpause"); + PauseRefresh = false; + } + void tv_PauseRefresh(object sender, vlnTreeSectionInfoEventArgs args) + { + //_MyLog.WarnFormat("Pause"); + PauseRefresh = true; } - private void SetupFolder(int folderID) { VETreeNode tn = VETreeNode.GetFolder(folderID); @@ -1045,6 +1065,7 @@ namespace VEPROMS if (RefreshTimerActive) { RefreshTimerActive = false; + if (PauseRefresh) return; RefreshChanged(this); } } @@ -1131,7 +1152,7 @@ namespace VEPROMS //_MyLog.Debug("StartRefreshChanged"); //if (SkipRefresh) return; MySemaphore.WaitOne(); - RefreshTimerActive = true; + RefreshTimerActive = !PauseRefresh; MySemaphore.Release(); } private void RefreshChanged(Object obj) @@ -1139,7 +1160,7 @@ namespace VEPROMS //if (SkipRefresh) return; //MySemaphore.WaitOne(); Int64 lastChanged = 0; - + //_MyLog.WarnFormat(">>> RefreshChanged"); try { //Int64 lastChanged = 0; @@ -2903,6 +2924,7 @@ namespace VEPROMS private StepRTB _LastStepRTB = null; private void tc_ItemSelectedChanged(object sender, ItemSelectedChangedEventArgs args) { + tc.HideCaret(); if (args != null && args.MyEditItem != null && !args.MyEditItem.MyStepPanel.ContainsFocus) return; btnFixMSWord.Visible = (args != null && ( args.MyItemInfo != null && args.MyEditItem == null)); if (_LastStepRTB != null && !_LastStepRTB.Disposing && !_LastStepRTB.Closed)