Fix short-palette fallback clobbering tab colors

This commit is contained in:
2026-03-26 13:28:11 -06:00
parent 7a1317a803
commit ee735b80d5
2 changed files with 5 additions and 4 deletions

View File

@@ -89,7 +89,7 @@ theme_access_get_gtk_palette_map (GtkWidget *widget, ThemeGtkPaletteMap *out_map
GdkRGBA accent; GdkRGBA accent;
g_return_val_if_fail (out_map != NULL, FALSE); g_return_val_if_fail (out_map != NULL, FALSE);
if (!theme_gtk3_is_active () || widget == NULL) if (!theme_gtk3_is_active () || widget == NULL || !GTK_IS_WIDGET (widget))
return FALSE; return FALSE;
context = gtk_widget_get_style_context (widget); context = gtk_widget_get_style_context (widget);
@@ -208,7 +208,8 @@ theme_get_xtext_colors_for_widget (GtkWidget *widget, XTextColor *palette, size_
theme_get_widget_style_values_for_widget (widget, &style_values); theme_get_widget_style_values_for_widget (widget, &style_values);
theme_runtime_get_xtext_colors (palette, palette_len); theme_runtime_get_xtext_colors (palette, palette_len);
has_user_colors = theme_runtime_mode_has_user_colors (theme_runtime_is_dark_active ()); has_user_colors = theme_runtime_mode_has_user_colors (theme_runtime_is_dark_active ());
theme_access_apply_default_99_palette (palette, palette_len, !has_user_colors); if (palette_len >= THEME_XTEXT_MIRC_COLS)
theme_access_apply_default_99_palette (palette, palette_len, !has_user_colors);
if (palette_len > THEME_XTEXT_MARK_FG_INDEX) if (palette_len > THEME_XTEXT_MARK_FG_INDEX)
{ {
palette[THEME_XTEXT_MARK_FG_INDEX].red = style_values.selection_foreground.red; palette[THEME_XTEXT_MARK_FG_INDEX].red = style_values.selection_foreground.red;

View File

@@ -93,7 +93,7 @@ theme_css_apply_widget_provider (GtkWidget *widget, GtkStyleProvider *provider)
{ {
GtkStyleContext *context; GtkStyleContext *context;
if (!widget || !provider) if (!widget || !provider || !GTK_IS_WIDGET (widget))
return; return;
context = gtk_widget_get_style_context (widget); context = gtk_widget_get_style_context (widget);
@@ -276,7 +276,7 @@ theme_css_apply_palette_widget (GtkWidget *widget, const GdkRGBA *bg, const GdkR
gchar *sel_bg_color = NULL; gchar *sel_bg_color = NULL;
gchar *sel_fg_color = NULL; gchar *sel_fg_color = NULL;
if (!widget) if (!widget || !GTK_IS_WIDGET (widget))
return; return;
provider = g_object_get_data (G_OBJECT (widget), theme_css_palette_provider_key); provider = g_object_get_data (G_OBJECT (widget), theme_css_palette_provider_key);