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

Bug 1990: Broken layout of Properties dialog when opening on a secondary display with high DPI primary display

https://winscp.net/tracker/1990
(cherry picked from commit c62602c7158d5ca103ed0f3c483ed31fe9b4e4c7)

Source commit: 9fd4112638a17f49e5cc13e5a271aa8eb0ff0c8c
Martin Prikryl пре 4 година
родитељ
комит
488d310db9
1 измењених фајлова са 8 додато и 0 уклоњено
  1. 8 0
      source/forms/Properties.cpp

+ 8 - 0
source/forms/Properties.cpp

@@ -775,6 +775,14 @@ void __fastcall TPropertiesDialog::CMDpiChanged(TMessage & Message)
   {
     UpdateFileImage();
   }
+
+  // WORKAROUND: Mere presence of the RightsFrame breaks automatic layout on DPI change in some situation, fixing it manually.
+  // (opening on a secondary display with 100%, while primary display has 150%)
+  SizeLabel->Width = CalculateSizeButton->Left - ScaleByTextHeight(this, 8) - SizeLabel->Left;
+  Bevel1->Width = CommonSheet->ClientWidth - (Bevel1->Left * 2);
+  Bevel2->Width = Bevel1->Width;
+  Bevel3->Width = Bevel1->Width;
+  RecursiveBevel->Width = Bevel1->Width;
 }
 //---------------------------------------------------------------------------
 void __fastcall TPropertiesDialog::Dispatch(void * Message)