From a0359a23ffa06039165d53b3f8ec6e496b1ff027 Mon Sep 17 00:00:00 2001 From: Maarten Bent Date: Thu, 10 Oct 2019 20:26:19 +0200 Subject: [PATCH] Fix wxSTC compilation without precompilead headers Get and release the HDC, instead of using WindowHDC. Because stc.cpp is used on all platforms, don't include wxMSW specific wx/msw/private.h. Also use const int for the variables. --- src/stc/stc.cpp | 12 +++++++----- src/stc/stc.cpp.in | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/stc/stc.cpp b/src/stc/stc.cpp index 226839a2c6..df2bd96efb 100644 --- a/src/stc/stc.cpp +++ b/src/stc/stc.cpp @@ -241,12 +241,14 @@ bool wxStyledTextCtrl::Create(wxWindow *parent, #endif #ifdef __WXMSW__ - // Set zoom for DPI - double baseDPI = ::GetDeviceCaps(WindowHDC(parent->GetHWND()), LOGPIXELSY); - double activeDPI = parent->GetDPI().y; + // Set initial zoom for active DPI + const HDC hdc = ::GetDC(parent->GetHWND()); + const int baseDPI = ::GetDeviceCaps(hdc, LOGPIXELSY); + const int activeDPI = parent->GetDPI().y; + ::ReleaseDC(parent->GetHWND(), hdc); - int ptSizeOld = StyleGetSize(wxSTC_STYLE_DEFAULT); - int ptSizeNew = (int)wxMulDivInt32(ptSizeOld, activeDPI, baseDPI); + const int ptSizeOld = StyleGetSize(wxSTC_STYLE_DEFAULT); + const int ptSizeNew = (int)wxMulDivInt32(ptSizeOld, activeDPI, baseDPI); SetZoom(GetZoom() + (ptSizeNew - ptSizeOld)); #endif diff --git a/src/stc/stc.cpp.in b/src/stc/stc.cpp.in index 83d8f4bf4c..d2a256e20c 100644 --- a/src/stc/stc.cpp.in +++ b/src/stc/stc.cpp.in @@ -241,12 +241,14 @@ bool wxStyledTextCtrl::Create(wxWindow *parent, #endif #ifdef __WXMSW__ - // Set zoom for DPI - double baseDPI = ::GetDeviceCaps(WindowHDC(parent->GetHWND()), LOGPIXELSY); - double activeDPI = parent->GetDPI().y; + // Set initial zoom for active DPI + const HDC hdc = ::GetDC(parent->GetHWND()); + const int baseDPI = ::GetDeviceCaps(hdc, LOGPIXELSY); + const int activeDPI = parent->GetDPI().y; + ::ReleaseDC(parent->GetHWND(), hdc); - int ptSizeOld = StyleGetSize(wxSTC_STYLE_DEFAULT); - int ptSizeNew = (int)wxMulDivInt32(ptSizeOld, activeDPI, baseDPI); + const int ptSizeOld = StyleGetSize(wxSTC_STYLE_DEFAULT); + const int ptSizeNew = (int)wxMulDivInt32(ptSizeOld, activeDPI, baseDPI); SetZoom(GetZoom() + (ptSizeNew - ptSizeOld)); #endif