diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c index e4321362..f0b4b99c 100644 --- a/src/fe-gtk/maingui.c +++ b/src/fe-gtk/maingui.c @@ -3178,42 +3178,84 @@ mg_fontdesc_with_fallback (const PangoFontDescription *base_desc, gboolean emoji static void mg_apply_emoji_fallback_widget (GtkWidget *widget) { - GtkStyle *style; PangoFontDescription *desc; +#if HAVE_GTK3 + GtkStyleContext *context; + const PangoFontDescription *base_desc; +#else + GtkStyle *style; +#endif if (!widget) return; +#if HAVE_GTK3 + context = gtk_widget_get_style_context (widget); + if (!context) + return; + + base_desc = gtk_style_context_get_font (context, GTK_STATE_FLAG_NORMAL); + if (!base_desc) + return; + + desc = mg_fontdesc_with_fallback (base_desc, FALSE); +#else style = gtk_widget_get_style (widget); if (!style || !style->font_desc) return; desc = mg_fontdesc_with_fallback (style->font_desc, FALSE); +#endif if (!desc) return; +#if HAVE_GTK3 + gtk_widget_override_font (widget, desc); +#else gtk_widget_modify_font (widget, desc); +#endif pango_font_description_free (desc); } static void mg_apply_emoji_primary_widget (GtkWidget *widget) { - GtkStyle *style; PangoFontDescription *desc; +#if HAVE_GTK3 + GtkStyleContext *context; + const PangoFontDescription *base_desc; +#else + GtkStyle *style; +#endif if (!widget) return; +#if HAVE_GTK3 + context = gtk_widget_get_style_context (widget); + if (!context) + return; + + base_desc = gtk_style_context_get_font (context, GTK_STATE_FLAG_NORMAL); + if (!base_desc) + return; + + desc = mg_fontdesc_with_fallback (base_desc, TRUE); +#else style = gtk_widget_get_style (widget); if (!style || !style->font_desc) return; desc = mg_fontdesc_with_fallback (style->font_desc, TRUE); +#endif if (!desc) return; +#if HAVE_GTK3 + gtk_widget_override_font (widget, desc); +#else gtk_widget_modify_font (widget, desc); +#endif pango_font_description_free (desc); } diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c index a53b6d34..ae268ea4 100644 --- a/src/fe-gtk/setup.c +++ b/src/fe-gtk/setup.c @@ -2814,7 +2814,13 @@ setup_apply_to_sess (session_gui *gui) chanview_apply_theme ((chanview *) gui->chanview); if (prefs.hex_gui_ulist_style) + { +#if HAVE_GTK3 + gtk_widget_override_font (gui->user_tree, input_style->font_desc); +#else gtk_widget_modify_font (gui->user_tree, input_style->font_desc); +#endif + } #if GTK_CHECK_VERSION(3,0,0) if (prefs.hex_gui_ulist_style || fe_dark_mode_is_enabled ())