themes: Make background colors partly transparent by default (#24151)
Certain themes define the `created` and `deleted` status colors, but not `created_background` and `deleted_background`. Previously, Zed would use `created` and `deleted` colors, and apply a hard-coded opacity change, but *not* use `created_background` and `deleted_background`, but that behavior was inadvertently changed in https://github.com/zed-industries/zed/pull/22994. This PR restores the old behavior as a fallback. If a theme defines a status color, but not the corresponding background color, we'll use a 75% transparent version of the foreground color as a fallback. Release Notes: - Fixed an issue in certain themes where diffs would render with the wrong red and green colors for deletions and insertions.
This commit is contained in:
@@ -24,6 +24,7 @@ use std::sync::Arc;
|
||||
|
||||
use ::settings::Settings;
|
||||
use anyhow::Result;
|
||||
use fallback_themes::apply_status_color_defaults;
|
||||
use fs::Fs;
|
||||
use gpui::{
|
||||
px, App, AssetSource, HighlightStyle, Hsla, Pixels, Refineable, SharedString, WindowAppearance,
|
||||
@@ -155,7 +156,9 @@ impl ThemeFamily {
|
||||
AppearanceContent::Light => StatusColors::light(),
|
||||
AppearanceContent::Dark => StatusColors::dark(),
|
||||
};
|
||||
refined_status_colors.refine(&theme.style.status_colors_refinement());
|
||||
let mut status_colors_refinement = theme.style.status_colors_refinement();
|
||||
apply_status_color_defaults(&mut status_colors_refinement);
|
||||
refined_status_colors.refine(&status_colors_refinement);
|
||||
|
||||
let mut refined_player_colors = match theme.appearance {
|
||||
AppearanceContent::Light => PlayerColors::light(),
|
||||
|
||||
Reference in New Issue
Block a user