diff --git a/docs/changes.txt b/docs/changes.txt index 91ce39369b..46da8f1dad 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -610,6 +610,7 @@ wxMSW: - Add paragraph spacing attributes support to wxTextCtrl (dannchr). - Show new style directory selector even for non existent paths (raychow). - Fix order of radial gradient stops (Alexandru Pana). +- Fix font reated using wxFont(wxFontInfo()) ctor. 3.0.1: (released 2014-06-15) diff --git a/samples/font/font.cpp b/samples/font/font.cpp index cc9476a95e..1a9891befb 100644 --- a/samples/font/font.cpp +++ b/samples/font/font.cpp @@ -109,6 +109,7 @@ public: void OnStrikethrough(wxCommandEvent& event); void OnwxPointerFont(wxCommandEvent& event); + void OnFontDefault(wxCommandEvent& event); void OnwxSystemSettingsFont(wxCommandEvent& event); void OnTestTextValue(wxCommandEvent& event); @@ -185,6 +186,7 @@ enum Font_wxSMALL_FONT, Font_wxITALIC_FONT, Font_wxSWISS_FONT, + Font_wxFont_Default, Font_Standard, // wxSystemSettings::GetFont possible objects: @@ -238,6 +240,7 @@ wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(Font_wxSMALL_FONT, MyFrame::OnwxPointerFont) EVT_MENU(Font_wxITALIC_FONT, MyFrame::OnwxPointerFont) EVT_MENU(Font_wxSWISS_FONT, MyFrame::OnwxPointerFont) + EVT_MENU(Font_wxFont_Default, MyFrame::OnFontDefault) EVT_MENU(Font_wxSYS_OEM_FIXED_FONT, MyFrame::OnwxSystemSettingsFont) EVT_MENU(Font_wxSYS_ANSI_FIXED_FONT, MyFrame::OnwxSystemSettingsFont) @@ -354,6 +357,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) menuStdFonts->Append(Font_wxSMALL_FONT, wxT("wxSMALL_FONT"), wxT("Small font used by wxWidgets")); menuStdFonts->Append(Font_wxITALIC_FONT, wxT("wxITALIC_FONT"), wxT("Italic font used by wxWidgets")); menuStdFonts->Append(Font_wxSWISS_FONT, wxT("wxSWISS_FONT"), wxT("Swiss font used by wxWidgets")); + menuStdFonts->Append(Font_wxFont_Default, wxT("wxFont()"), wxT("wxFont constructed from default wxFontInfo")); menuSelect->Append(Font_Standard, wxT("Standar&d fonts"), menuStdFonts); wxMenu *menuSettingFonts = new wxMenu; @@ -774,6 +778,11 @@ void MyFrame::OnwxPointerFont(wxCommandEvent& event) DoChangeFont(font); } +void MyFrame::OnFontDefault(wxCommandEvent& WXUNUSED(event)) +{ + DoChangeFont(wxFont(wxFontInfo())); +} + void MyFrame::OnwxSystemSettingsFont(wxCommandEvent& event) { wxFont font; diff --git a/src/msw/font.cpp b/src/msw/font.cpp index 6c747e821e..78786d142d 100644 --- a/src/msw/font.cpp +++ b/src/msw/font.cpp @@ -360,7 +360,7 @@ void wxFontRefData::Init(int pointSize, if ( m_sizeUsingPixels ) SetPixelSize(pixelSize); else - SetPointSize(pointSize); + SetPointSize(pointSize == -1 ? wxNORMAL_FONT->GetPointSize() : pointSize); SetStyle(style); SetWeight(weight); @@ -841,7 +841,7 @@ bool wxFont::DoCreate(int pointSize, // wxDEFAULT is a valid value for the font size too so we must treat it // specially here (otherwise the size would be 70 == wxDEFAULT value) - if ( pointSize == wxDEFAULT || pointSize == -1 ) + if ( pointSize == wxDEFAULT ) { pointSize = wxNORMAL_FONT->GetPointSize(); }