Explorar el Código

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 hace 8 años
padre
commit
cd2cc8b903
Se han modificado 2 ficheros con 3 adiciones y 1 borrados
  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);
   GenerateButtonImages();
+  CenterButtonImage(LoginButton);
 }
 //---------------------------------------------------------------------------
 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());
     Canvas->Control = Button;
+    Canvas->Font = Button->Font;
 
-    UnicodeString Caption = Button->Caption;
+    UnicodeString Caption = Button->Caption.Trim();
     UnicodeString Padding;
     while (Canvas->TextWidth(Padding) < ImageWidth)
     {