fix input font style/size

This commit is contained in:
2026-07-16 14:42:13 -06:00
parent f87f1bfc4b
commit 4c66005003

View File

@@ -201,7 +201,7 @@ enum
#define TAG_IRC 0 /* server, channel, dialog */ #define TAG_IRC 0 /* server, channel, dialog */
#define TAG_UTIL 1 /* dcc, notify, chanlist */ #define TAG_UTIL 1 /* dcc, notify, chanlist */
static void mg_apply_emoji_fallback_widget (GtkWidget *widget); static void mg_apply_emoji_fallback_widget (GtkWidget *widget, const PangoFontDescription *font);
static void mg_reply_show_child (GtkWidget *widget, gpointer data); static void mg_reply_show_child (GtkWidget *widget, gpointer data);
#define MG_CONFIG_SAVE_DEBOUNCE_MS 250 #define MG_CONFIG_SAVE_DEBOUNCE_MS 250
@@ -3232,7 +3232,7 @@ mg_create_chanmodebuttons (session_gui *gui, GtkWidget *box)
gtk_entry_set_max_length (GTK_ENTRY (gui->key_entry), 23); gtk_entry_set_max_length (GTK_ENTRY (gui->key_entry), 23);
gtk_widget_set_size_request (gui->key_entry, 58, 11); gtk_widget_set_size_request (gui->key_entry, 58, 11);
gtk_box_pack_start (GTK_BOX (box), gui->key_entry, 0, 0, 0); gtk_box_pack_start (GTK_BOX (box), gui->key_entry, 0, 0, 0);
mg_apply_emoji_fallback_widget (gui->key_entry); mg_apply_emoji_fallback_widget (gui->key_entry, NULL);
mg_apply_compact_mode_css (gui->key_entry); mg_apply_compact_mode_css (gui->key_entry);
g_signal_connect (G_OBJECT (gui->key_entry), "activate", g_signal_connect (G_OBJECT (gui->key_entry), "activate",
G_CALLBACK (mg_key_entry_cb), NULL); G_CALLBACK (mg_key_entry_cb), NULL);
@@ -3250,7 +3250,7 @@ mg_create_chanmodebuttons (session_gui *gui, GtkWidget *box)
gtk_entry_set_width_chars (GTK_ENTRY (gui->limit_entry), 5); gtk_entry_set_width_chars (GTK_ENTRY (gui->limit_entry), 5);
gtk_widget_set_size_request (gui->limit_entry, 45, 11); gtk_widget_set_size_request (gui->limit_entry, 45, 11);
gtk_box_pack_start (GTK_BOX (box), gui->limit_entry, 0, 0, 0); gtk_box_pack_start (GTK_BOX (box), gui->limit_entry, 0, 0, 0);
mg_apply_emoji_fallback_widget (gui->limit_entry); mg_apply_emoji_fallback_widget (gui->limit_entry, NULL);
mg_apply_compact_mode_css (gui->limit_entry); mg_apply_compact_mode_css (gui->limit_entry);
g_signal_connect (G_OBJECT (gui->limit_entry), "activate", g_signal_connect (G_OBJECT (gui->limit_entry), "activate",
G_CALLBACK (mg_limit_entry_cb), NULL); G_CALLBACK (mg_limit_entry_cb), NULL);
@@ -3519,7 +3519,8 @@ mg_apply_session_font_prefs (session_gui *gui)
{ {
if (prefs.hex_gui_input_style) if (prefs.hex_gui_input_style)
theme_manager_apply_entry_palette (gui->input_box, font); theme_manager_apply_entry_palette (gui->input_box, font);
mg_apply_emoji_fallback_widget (gui->input_box); mg_apply_emoji_fallback_widget (gui->input_box,
prefs.hex_gui_input_style ? font : NULL);
} }
if (gui->chanview) if (gui->chanview)
@@ -4475,7 +4476,7 @@ mg_fontdesc_with_fallback (const PangoFontDescription *base_desc, gboolean emoji
} }
static void static void
mg_apply_emoji_fallback_widget (GtkWidget *widget) mg_apply_emoji_fallback_widget (GtkWidget *widget, const PangoFontDescription *font)
{ {
PangoFontDescription *desc; PangoFontDescription *desc;
GtkStyleContext *context; GtkStyleContext *context;
@@ -4488,6 +4489,9 @@ mg_apply_emoji_fallback_widget (GtkWidget *widget)
if (!context) if (!context)
return; return;
if (font)
base_desc = pango_font_description_copy (font);
else
gtk_style_context_get (context, GTK_STATE_FLAG_NORMAL, gtk_style_context_get (context, GTK_STATE_FLAG_NORMAL,
"font", &base_desc, "font", &base_desc,
NULL); NULL);
@@ -4695,7 +4699,7 @@ mg_create_search(session *sess, GtkWidget *box)
gui->shentry = entry = gtk_entry_new(); gui->shentry = entry = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(gui->shbox), entry, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(gui->shbox), entry, FALSE, FALSE, 0);
gtk_widget_set_size_request (gui->shentry, 180, -1); gtk_widget_set_size_request (gui->shentry, 180, -1);
mg_apply_emoji_fallback_widget (entry); mg_apply_emoji_fallback_widget (entry, NULL);
mg_apply_entry_scroll_artifact_fix (entry); mg_apply_entry_scroll_artifact_fix (entry);
gui->search_changed_signal = g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(search_handle_change), sess); gui->search_changed_signal = g_signal_connect(G_OBJECT(entry), "changed", G_CALLBACK(search_handle_change), sess);
g_signal_connect (G_OBJECT (entry), "key-press-event", G_CALLBACK (search_handle_esc), sess); g_signal_connect (G_OBJECT (entry), "key-press-event", G_CALLBACK (search_handle_esc), sess);
@@ -4803,7 +4807,8 @@ mg_create_entry (session *sess, GtkWidget *box)
if (prefs.hex_gui_input_style) if (prefs.hex_gui_input_style)
mg_apply_entry_style (entry); mg_apply_entry_style (entry);
mg_apply_emoji_fallback_widget (entry); mg_apply_emoji_fallback_widget (entry,
prefs.hex_gui_input_style && input_style ? input_style->font_desc : NULL);
mg_apply_entry_scroll_artifact_fix (entry); mg_apply_entry_scroll_artifact_fix (entry);
#ifdef G_OS_WIN32 #ifdef G_OS_WIN32