Browse Source

Issue 2313 – Prevent redrawing scrollbars when loading remote directory tree

https://winscp.net/tracker/2313

Source commit: 3af49432cc51409c43a0fdf2cb956b7a5de0989e
Martin Prikryl 1 year ago
parent
commit
751d61e109
1 changed files with 12 additions and 1 deletions
  1. 12 1
      source/components/UnixDriveView.cpp

+ 12 - 1
source/components/UnixDriveView.cpp

@@ -392,7 +392,18 @@ void __fastcall TCustomUnixDriveView::LoadDirectory()
   FIgnoreChange = true;
   try
   {
-    Selected = LoadPath(FTerminal->Files->Directory);
+    // WM_SETREDRAW does not prevent re-drawing of the scrollbar (with each added node)
+    LockWindowUpdate(Handle);
+    TTreeNode * NewSelected;
+    try
+    {
+      NewSelected = LoadPath(FTerminal->Files->Directory);
+    }
+    __finally
+    {
+      LockWindowUpdate(NULL);
+    }
+    Selected = NewSelected;
     DebugAssert(Selected != NULL);
     FPrevSelected = Selected;
   }