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.
This commit is contained in:
Rich 2016-02-01 21:29:03 +00:00
parent bdfdd2f8a1
commit c159a9889f

View File

@ -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)