소스 검색

Bug 1494: Colored session icon does not display on high DPI

https://winscp.net/tracker/1494

Source commit: 61e90461f357f4a858ea2c0dfdc0c4a07ae91bbc
Martin Prikryl 8 년 전
부모
커밋
15db50660a
2개의 변경된 파일16개의 추가작업 그리고 0개의 파일을 삭제
  1. 15 0
      source/forms/Login.cpp
  2. 1 0
      source/forms/Login.h

+ 15 - 0
source/forms/Login.cpp

@@ -140,6 +140,8 @@ void __fastcall TLoginDialog::InitControls()
   CenterButtonImage(LoginButton);
 
   SelectScaledImageList(SessionImageList);
+  // have to recreate the site images
+  UpdateNodeImages();
   SelectScaledImageList(ActionImageList);
 
   // Generate button images.
@@ -319,6 +321,19 @@ TTreeNode * __fastcall TLoginDialog::AddSession(TSessionData * Data)
   return Node;
 }
 //---------------------------------------------------------------------------
+void __fastcall TLoginDialog::UpdateNodeImages()
+{
+  TTreeNode * Node = SessionTree->Items->GetFirstNode();
+  while (Node != NULL)
+  {
+    if (IsSiteNode(Node))
+    {
+      UpdateNodeImage(Node);
+    }
+    Node = Node->GetNext();
+  }
+}
+//---------------------------------------------------------------------------
 void __fastcall TLoginDialog::UpdateNodeImage(TTreeNode * Node)
 {
   SetNodeImage(Node, GetSessionImageIndex(GetNodeSession(Node)));

+ 1 - 0
source/forms/Login.h

@@ -377,6 +377,7 @@ private:
   bool __fastcall IsCloneToNewSiteDefault();
   bool __fastcall IsDefaultResult(TModalResult Result);
   void __fastcall UpdateNodeImage(TTreeNode * Node);
+  void __fastcall UpdateNodeImages();
   int __fastcall GetSessionImageIndex(TSessionData * Data);
   void __fastcall SetNodeImage(TTreeNode * Node, int ImageIndex);
   void __fastcall CancelEditing();