Преглед изворни кода

Bug 1555: Wrong position of an icon on Login button, when Login dialog monitor DPI does not match system DPI

https://winscp.net/tracker/1555

Source commit: 14616d36eff4970191493279c337024c9ef02e29
Martin Prikryl пре 8 година
родитељ
комит
cd2cc8b903
2 измењених фајлова са 3 додато и 1 уклоњено
  1. 1 0
      source/forms/Login.cpp
  2. 2 1
      source/windows/WinInterface.cpp

+ 1 - 0
source/forms/Login.cpp

@@ -1569,6 +1569,7 @@ void __fastcall TLoginDialog::CMDpiChanged(TMessage & Message)
 {
 {
   TForm::Dispatch(&Message);
   TForm::Dispatch(&Message);
   GenerateButtonImages();
   GenerateButtonImages();
+  CenterButtonImage(LoginButton);
 }
 }
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 void __fastcall TLoginDialog::Dispatch(void * Message)
 void __fastcall TLoginDialog::Dispatch(void * Message)

+ 2 - 1
source/windows/WinInterface.cpp

@@ -1277,8 +1277,9 @@ void __fastcall CenterButtonImage(TButton * Button)
 
 
     std::unique_ptr<TControlCanvas> Canvas(new TControlCanvas());
     std::unique_ptr<TControlCanvas> Canvas(new TControlCanvas());
     Canvas->Control = Button;
     Canvas->Control = Button;
+    Canvas->Font = Button->Font;
 
 
-    UnicodeString Caption = Button->Caption;
+    UnicodeString Caption = Button->Caption.Trim();
     UnicodeString Padding;
     UnicodeString Padding;
     while (Canvas->TextWidth(Padding) < ImageWidth)
     while (Canvas->TextWidth(Padding) < ImageWidth)
     {
     {