X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7941ba111cac53f21eafdeeeed6b543c3a2ba610..78316bbe3589b0d9bad4de1706d3e8a3215b0867:/src/gtk/font.cpp

diff --git a/src/gtk/font.cpp b/src/gtk/font.cpp
index a957f4f68a..5e9d1ce629 100644
--- a/src/gtk/font.cpp
+++ b/src/gtk/font.cpp
@@ -26,10 +26,12 @@
 #include "wx/log.h"
 #include "wx/gdicmn.h"
 #include "wx/tokenzr.h"
+#include "wx/settings.h"
 
 #include <strings.h>
 
 #include <gdk/gdk.h>
+#include <gtk/gtk.h>
 
 // ----------------------------------------------------------------------------
 // wxFontRefData
@@ -388,6 +390,29 @@ void wxFont::SetEncoding(wxFontEncoding encoding)
 // get internal representation of font
 // ----------------------------------------------------------------------------
 
+static GdkFont *g_systemDefaultGuiFont = (GdkFont*) NULL;
+
+static GdkFont *GtkGetDefaultGuiFont()
+{
+    if (!g_systemDefaultGuiFont)
+    {
+        GtkWidget *widget = gtk_button_new();
+        GtkStyle *def = gtk_rc_get_style( widget );
+        if (def)
+        {
+            g_systemDefaultGuiFont = gdk_font_ref( def->font );
+        }
+        else
+        {
+            def = gtk_widget_get_default_style();
+            if (def)
+                g_systemDefaultGuiFont = gdk_font_ref( def->font );
+        }
+        gtk_widget_destroy( widget );
+    }
+    return g_systemDefaultGuiFont;
+}
+
 GdkFont *wxFont::GetInternalFont( float scale ) const
 {
     if (!Ok())
@@ -408,18 +433,11 @@ GdkFont *wxFont::GetInternalFont( float scale ) const
     }
     else
     {
-#if 0
-        if ((int_scale == 100) &&
-                (M_FONTDATA->m_family == wxSWISS) &&
-                (M_FONTDATA->m_style == wxNORMAL) &&
-                (M_FONTDATA->m_pointSize == 12) &&
-                (M_FONTDATA->m_weight == wxNORMAL) &&
-                (M_FONTDATA->m_underlined == FALSE))
+        if (*this == wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT))
         {
-            font = gdk_font_load( "-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*" );
+            font = GtkGetDefaultGuiFont();
         }
-        else
-#endif // 0
+        if (!font)
         {
             font = wxLoadQueryNearestFont( point_scale,
                                            M_FONTDATA->m_family,