From 5f1e0fe7d8a37233b42655d69440505ac621b63e Mon Sep 17 00:00:00 2001 From: deepend-tildeclub Date: Sat, 21 Mar 2026 03:01:03 -0600 Subject: [PATCH] Fix GTK default text/bg reset staging --- src/fe-gtk/setup.c | 2 +- .../theme/tests/test-theme-preferences-gtk3-populate.c | 10 ++++++++++ src/fe-gtk/theme/theme-preferences.c | 7 +++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c index f0453530..72719116 100644 --- a/src/fe-gtk/setup.c +++ b/src/fe-gtk/setup.c @@ -2197,8 +2197,8 @@ setup_ok_cb (GtkWidget *but, GtkWidget *win) char buffer[192]; memcpy (&old_prefs, &prefs, sizeof (prefs)); - theme_preferences_stage_apply (); setup_apply (&setup_prefs); + theme_preferences_stage_apply (); save_result = preferences_persistence_save_all (); if (save_result.success) { diff --git a/src/fe-gtk/theme/tests/test-theme-preferences-gtk3-populate.c b/src/fe-gtk/theme/tests/test-theme-preferences-gtk3-populate.c index 569fbd50..6f4b1059 100644 --- a/src/fe-gtk/theme/tests/test-theme-preferences-gtk3-populate.c +++ b/src/fe-gtk/theme/tests/test-theme-preferences-gtk3-populate.c @@ -68,6 +68,16 @@ theme_get_color (ThemeSemanticToken token, GdkRGBA *color) return TRUE; } +void +theme_get_widget_style_values_for_widget (GtkWidget *widget, ThemeWidgetStyleValues *out_values) +{ + (void)widget; + if (!out_values) + return; + gdk_rgba_parse (&out_values->foreground, "#111111"); + gdk_rgba_parse (&out_values->background, "#f0f0f0"); +} + void theme_manager_set_token_color (unsigned int dark_mode, ThemeSemanticToken token, const GdkRGBA *color, gboolean *changed) { diff --git a/src/fe-gtk/theme/theme-preferences.c b/src/fe-gtk/theme/theme-preferences.c index b67b293b..9b49a43e 100644 --- a/src/fe-gtk/theme/theme-preferences.c +++ b/src/fe-gtk/theme/theme-preferences.c @@ -723,6 +723,7 @@ theme_preferences_manager_dialog_response_cb (GtkDialog *dialog, gint response_i if (theme_preferences_stage.active) { ThemeSemanticToken token; + ThemeWidgetStyleValues style_values; for (token = THEME_TOKEN_MIRC_0; token < THEME_TOKEN_COUNT; token++) { @@ -733,6 +734,12 @@ theme_preferences_manager_dialog_response_cb (GtkDialog *dialog, gint response_i theme_preferences_stage.staged[token] = rgba; theme_preferences_stage.staged_valid[token] = TRUE; } + theme_get_widget_style_values_for_widget (GTK_WIDGET (dialog), &style_values); + theme_preferences_stage.staged[THEME_TOKEN_TEXT_FOREGROUND] = style_values.foreground; + theme_preferences_stage.staged_valid[THEME_TOKEN_TEXT_FOREGROUND] = TRUE; + theme_preferences_stage.staged[THEME_TOKEN_TEXT_BACKGROUND] = style_values.background; + theme_preferences_stage.staged_valid[THEME_TOKEN_TEXT_BACKGROUND] = TRUE; + theme_preferences_stage_sync_runtime_to_staged (); theme_preferences_stage_recompute_changed (); if (ui->color_change_flag) *ui->color_change_flag = theme_preferences_stage.changed;