|
@@ -463,6 +463,13 @@ void __fastcall TCustomUnixDriveView::Delete(TTreeNode * Node)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//---------------------------------------------------------------------------
|
|
//---------------------------------------------------------------------------
|
|
|
|
+bool __fastcall TCustomUnixDriveView::CanChange(TTreeNode * Node)
|
|
|
|
+{
|
|
|
|
+ return
|
|
|
|
+ TCustomDriveView::CanChange(Node) &&
|
|
|
|
+ FCanChange;
|
|
|
|
+}
|
|
|
|
+//---------------------------------------------------------------------------
|
|
void __fastcall TCustomUnixDriveView::Change(TTreeNode * Node)
|
|
void __fastcall TCustomUnixDriveView::Change(TTreeNode * Node)
|
|
{
|
|
{
|
|
#ifndef DESIGN_ONLY
|
|
#ifndef DESIGN_ONLY
|
|
@@ -502,7 +509,13 @@ void __fastcall TCustomUnixDriveView::Change(TTreeNode * Node)
|
|
}
|
|
}
|
|
try
|
|
try
|
|
{
|
|
{
|
|
- Terminal->ChangeDirectory(NodePathName(Node));
|
|
|
|
|
|
+ {
|
|
|
|
+ // Prevent curther changes while loading the folder.
|
|
|
|
+ // Particularly prevent user from trying to proceed with incremental search.
|
|
|
|
+ TValueRestorer<bool> CanChangeRestorer(FCanChange);
|
|
|
|
+ FCanChange = false;
|
|
|
|
+ Terminal->ChangeDirectory(NodePathName(Node));
|
|
|
|
+ }
|
|
TCustomDriveView::Change(Node);
|
|
TCustomDriveView::Change(Node);
|
|
}
|
|
}
|
|
__finally
|
|
__finally
|