Miscellaneous DPI-related bug fixes.

See https://github.com/wxWidgets/wxWidgets/pull/2128
This commit is contained in:
Vadim Zeitlin
2020-11-27 15:14:06 +01:00
3 changed files with 12 additions and 5 deletions

View File

@@ -1457,7 +1457,7 @@ wxSize wxComboCtrlBase::DoGetSizeFromTextSize(int xlen, int ylen) const
fhei += 2 * FOCUS_RING;
// Calculate width
int fwid = xlen + FOCUS_RING + COMBO_MARGIN + DEFAULT_DROPBUTTON_WIDTH;
int fwid = GetNativeTextIndent() + xlen + FOCUS_RING + COMBO_MARGIN + m_btnArea.width;
// Add the margins we have previously set
wxPoint marg( GetMargins() );

View File

@@ -619,6 +619,10 @@ wxFont* wxHtmlWinParser::CreateCurrentFont()
*encptr = m_OutputEnc;
#endif
}
#ifdef __WXMSW__
if ( m_windowInterface && m_windowInterface->GetHTMLWindow() )
(*fontptr)->WXAdjustToPPI(m_windowInterface->GetHTMLWindow()->GetDPI());
#endif
m_DC->SetFont(**fontptr);
return (*fontptr);
}

View File

@@ -4924,10 +4924,13 @@ static void UpdateSizerOnDPIChange(wxSizer* sizer, float scaleFactor)
ScaleCoordIfSet(min.y, scaleFactor);
sizerItem->SetMinSize(min);
wxSize size = sizerItem->GetSize();
ScaleCoordIfSet(size.x, scaleFactor);
ScaleCoordIfSet(size.y, scaleFactor);
sizerItem->SetDimension(wxDefaultPosition, size);
if ( sizerItem->IsSpacer() )
{
wxSize size = sizerItem->GetSize();
ScaleCoordIfSet(size.x, scaleFactor);
ScaleCoordIfSet(size.y, scaleFactor);
sizerItem->SetDimension(wxDefaultPosition, size);
}
// Update any child sizers if this is a sizer
UpdateSizerOnDPIChange(sizerItem->GetSizer(), scaleFactor);