From 07e7d832c7a337aedba3537b90b2c98c4d8e2985 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Fri, 10 Jul 2020 15:07:04 +0200 Subject: [PATCH] Avoid infinite recursion between wxStockGDI and wxSystemSettions There was a possible recursion from wxStockGDI::GetFont to wxSystemSettings::GetFont and back, resolve by using direct font creation, adding fixed system font. --- include/wx/osx/font.h | 3 ++- src/osx/carbon/font.cpp | 2 ++ src/osx/cocoa/settings.mm | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/include/wx/osx/font.h b/include/wx/osx/font.h index 3d6591cda3..923cdb47f5 100644 --- a/include/wx/osx/font.h +++ b/include/wx/osx/font.h @@ -26,7 +26,8 @@ enum wxOSXSystemFont wxOSX_SYSTEM_FONT_MINI, wxOSX_SYSTEM_FONT_MINI_BOLD, wxOSX_SYSTEM_FONT_LABELS, - wxOSX_SYSTEM_FONT_VIEWS + wxOSX_SYSTEM_FONT_VIEWS, + wxOSX_SYSTEM_FONT_FIXED }; diff --git a/src/osx/carbon/font.cpp b/src/osx/carbon/font.cpp index 95e9f93f9b..a4cf4e5b23 100644 --- a/src/osx/carbon/font.cpp +++ b/src/osx/carbon/font.cpp @@ -471,6 +471,8 @@ wxFont::wxFont(wxOSXSystemFont font) case wxOSX_SYSTEM_FONT_VIEWS: uifont = kCTFontViewsFontType; break; + case wxOSX_SYSTEM_FONT_FIXED: + uifont = kCTFontUIFontUserFixedPitch; default: break; } diff --git a/src/osx/cocoa/settings.mm b/src/osx/cocoa/settings.mm index faa1336cc5..39afbfd74a 100644 --- a/src/osx/cocoa/settings.mm +++ b/src/osx/cocoa/settings.mm @@ -196,7 +196,7 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index) case wxSYS_DEVICE_DEFAULT_FONT : case wxSYS_DEFAULT_GUI_FONT : { - return *wxSMALL_FONT ; + return wxFont(wxOSX_SYSTEM_FONT_SMALL) ; } ; break ; case wxSYS_OEM_FIXED_FONT : @@ -204,7 +204,7 @@ wxFont wxSystemSettingsNative::GetFont(wxSystemFont index) case wxSYS_SYSTEM_FIXED_FONT : default : { - return *wxNORMAL_FONT ; + return wxFont(wxOSX_SYSTEM_FONT_FIXED) ; } ; break ;