X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7826e2dd838d59c6a8061b4fdd9f7326a6e06de3..bb6de5ffad98697205287a04fe91ca73e7194709:/src/gtk/font.cpp?ds=sidebyside diff --git a/src/gtk/font.cpp b/src/gtk/font.cpp index c58aca2e81..74864d1882 100644 --- a/src/gtk/font.cpp +++ b/src/gtk/font.cpp @@ -152,13 +152,29 @@ wxFontRefData::~wxFontRefData() bool wxNativeFontInfo::FromString(const wxString& s) { - xFontName = s; + wxStringTokenizer tokenizer(s, _T(";")); + + wxString token = tokenizer.GetNextToken(); + // + // Ignore the version for now + // + + xFontName = tokenizer.GetNextToken(); + if(!xFontName) + return FALSE; + return TRUE; } wxString wxNativeFontInfo::ToString() const { - return xFontName; + wxString s; + + s.Printf(_T("%d;%s"), + 0, // version + xFontName.c_str()); + + return s; } // ---------------------------------------------------------------------------- @@ -169,15 +185,13 @@ IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) void wxFont::Init() { - if (wxTheFontList) - wxTheFontList->Append( this ); } wxFont::wxFont(const wxNativeFontInfo& info) { Init(); - Create(info.ToString()); + Create(info.xFontName); } bool wxFont::Create(const wxNativeFontInfo& info) @@ -201,8 +215,6 @@ bool wxFont::Create( int pointSize, bool wxFont::Create(const wxString& fontname, wxFontEncoding enc) { - Init(); - if( !fontname ) { *this = wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT); @@ -320,8 +332,6 @@ void wxFont::Unshare() wxFont::~wxFont() { - if (wxTheFontList) - wxTheFontList->DeleteObject( this ); } // ---------------------------------------------------------------------------- @@ -479,6 +489,12 @@ GdkFont *GtkGetDefaultGuiFont() } gtk_widget_destroy( widget ); } + else + { + // already have it, but ref it once more before returning + gdk_font_ref(g_systemDefaultGuiFont); + } + return g_systemDefaultGuiFont; }