Updated emoji font fallback/primary application to use GTK3 style context fonts with gtk_widget_override_font, while keeping GTK2 style/modify calls behind #if !HAVE_GTK3.

Applied GTK3 font overrides for the user list font setting in setup_apply_to_sess, with GTK2 fallback preserved under #if !HAVE_GTK3
This commit is contained in:
2026-01-30 17:28:09 -07:00
parent 5b28ae17cf
commit d330d6d537
2 changed files with 50 additions and 2 deletions

View File

@@ -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);
}

View File

@@ -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 ())