From 78decce3d8efe7727512f43783526219ff1e38f5 Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Wed, 25 Nov 2020 23:51:41 +0100 Subject: [PATCH 1/3] Don't change sizer dimensions on DPI change Closes #18969. --- src/msw/window.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 703d65a93c..9e7e26a778 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -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); From f4dcac9f449aceb18ca845f089c2a0f188730b03 Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Wed, 25 Nov 2020 23:52:00 +0100 Subject: [PATCH 2/3] Return wxFont adjusted to DPI in wxHtmlWinParser::CreateCurrentFont() See #18564. --- src/html/winpars.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/html/winpars.cpp b/src/html/winpars.cpp index a3f06e1d64..830146cde0 100644 --- a/src/html/winpars.cpp +++ b/src/html/winpars.cpp @@ -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); } From f4221b6df58b468c910041e6e13bff47053e68b1 Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Wed, 25 Nov 2020 23:52:13 +0100 Subject: [PATCH 3/3] Improve GetSizeFromText in wxComboCtrl Also take default text indent into account, and use the actual button area width. Closes #18930. --- src/common/combocmn.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/combocmn.cpp b/src/common/combocmn.cpp index f833e0c0e3..aa0bc95fc5 100644 --- a/src/common/combocmn.cpp +++ b/src/common/combocmn.cpp @@ -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() );