diff --git a/docs/changes.txt b/docs/changes.txt index 9d8e34edf1..018d76852d 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -222,6 +222,7 @@ wxMSW: wxGTK: - allow calling wxWindow::SetFont if window not yet created +- fixed compilation with newer GTK+ versions wxOS2: - fixed various problems in file handling diff --git a/src/gtk/menu.cpp b/src/gtk/menu.cpp index 1d7191b731..cc6e51dd12 100644 --- a/src/gtk/menu.cpp +++ b/src/gtk/menu.cpp @@ -30,13 +30,13 @@ #ifdef __WXGTK20__ #include - #define gtk_accel_group_attach(g, o) _gtk_accel_group_attach((g), (o)) - #define gtk_accel_group_detach(g, o) _gtk_accel_group_detach((g), (o)) + #define gtk_accel_group_attach(g, o) gtk_window_add_accel_group((o), (g)) + #define gtk_accel_group_detach(g, o) gtk_window_remove_accel_group((o), (g)) #define gtk_menu_ensure_uline_accel_group(m) gtk_menu_get_accel_group(m) - #define ACCEL_OBJECT GObject + #define ACCEL_OBJECT GtkWindow #define ACCEL_OBJECTS(a) (a)->acceleratables - #define ACCEL_OBJ_CAST(obj) G_OBJECT(obj) + #define ACCEL_OBJ_CAST(obj) ((GtkWindow*) obj) #else // GTK+ 1.x #define ACCEL_OBJECT GtkObject #define ACCEL_OBJECTS(a) (a)->attach_objects diff --git a/src/gtk/settings.cpp b/src/gtk/settings.cpp index fded8203fd..995a1e6ba8 100644 --- a/src/gtk/settings.cpp +++ b/src/gtk/settings.cpp @@ -340,9 +340,17 @@ wxFont wxSystemSettingsNative::GetFont( wxSystemFont index ) } else { - const gchar *font_name = - _gtk_rc_context_get_default_font_name(gtk_settings_get_default()); - g_systemFont = new wxFont(wxString::FromAscii(font_name)); + GtkSettings *settings = gtk_settings_get_default(); + gchar *font_name = NULL; + g_object_get ( settings, + "gtk-font-name", + &font_name, + NULL); + if (!font_name) + g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ); + else + g_systemFont = new wxFont(wxString::FromAscii(font_name)); + g_free (font_name); } gtk_widget_destroy( widget ); #else diff --git a/src/gtk1/menu.cpp b/src/gtk1/menu.cpp index 1d7191b731..cc6e51dd12 100644 --- a/src/gtk1/menu.cpp +++ b/src/gtk1/menu.cpp @@ -30,13 +30,13 @@ #ifdef __WXGTK20__ #include - #define gtk_accel_group_attach(g, o) _gtk_accel_group_attach((g), (o)) - #define gtk_accel_group_detach(g, o) _gtk_accel_group_detach((g), (o)) + #define gtk_accel_group_attach(g, o) gtk_window_add_accel_group((o), (g)) + #define gtk_accel_group_detach(g, o) gtk_window_remove_accel_group((o), (g)) #define gtk_menu_ensure_uline_accel_group(m) gtk_menu_get_accel_group(m) - #define ACCEL_OBJECT GObject + #define ACCEL_OBJECT GtkWindow #define ACCEL_OBJECTS(a) (a)->acceleratables - #define ACCEL_OBJ_CAST(obj) G_OBJECT(obj) + #define ACCEL_OBJ_CAST(obj) ((GtkWindow*) obj) #else // GTK+ 1.x #define ACCEL_OBJECT GtkObject #define ACCEL_OBJECTS(a) (a)->attach_objects diff --git a/src/gtk1/settings.cpp b/src/gtk1/settings.cpp index fded8203fd..995a1e6ba8 100644 --- a/src/gtk1/settings.cpp +++ b/src/gtk1/settings.cpp @@ -340,9 +340,17 @@ wxFont wxSystemSettingsNative::GetFont( wxSystemFont index ) } else { - const gchar *font_name = - _gtk_rc_context_get_default_font_name(gtk_settings_get_default()); - g_systemFont = new wxFont(wxString::FromAscii(font_name)); + GtkSettings *settings = gtk_settings_get_default(); + gchar *font_name = NULL; + g_object_get ( settings, + "gtk-font-name", + &font_name, + NULL); + if (!font_name) + g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ); + else + g_systemFont = new wxFont(wxString::FromAscii(font_name)); + g_free (font_name); } gtk_widget_destroy( widget ); #else