gpui: Add support for window transparency & blur on macOS (#9610)
This PR adds support for transparent and blurred window backgrounds on macOS. Release Notes: - Added support for transparent and blurred window backgrounds on macOS ([#5040](https://github.com/zed-industries/zed/issues/5040)). - This requires themes to specify a new `background.appearance` key ("opaque", "transparent" or "blurred") and to include an alpha value in colors that should be transparent. <img width="913" alt="image" src="https://github.com/zed-industries/zed/assets/2588851/7547ee2a-e376-4d55-9114-e6fc2f5110bc"> <img width="994" alt="image" src="https://github.com/zed-industries/zed/assets/2588851/b36fbc14-6e4d-4140-9448-69cad803c45a"> <img width="1020" alt="image" src="https://github.com/zed-industries/zed/assets/2588851/d70e2005-54fd-4991-a211-ed484ccf26ef"> --------- Co-authored-by: Luiz Marcondes <luizgustavodevergennes@gmail.com> Co-authored-by: Marshall Bowers <elliott.codes@gmail.com>
This commit is contained in:
co-authored by
Luiz Marcondes
Marshall Bowers
parent
1360dffead
commit
49144d94bf
@@ -27,7 +27,9 @@ pub use schema::*;
|
||||
pub use settings::*;
|
||||
pub use styles::*;
|
||||
|
||||
use gpui::{AppContext, AssetSource, Hsla, SharedString, WindowAppearance};
|
||||
use gpui::{
|
||||
AppContext, AssetSource, Hsla, SharedString, WindowAppearance, WindowBackgroundAppearance,
|
||||
};
|
||||
use serde::Deserialize;
|
||||
|
||||
#[derive(Debug, PartialEq, Clone, Copy, Deserialize)]
|
||||
@@ -158,6 +160,12 @@ impl Theme {
|
||||
pub fn appearance(&self) -> Appearance {
|
||||
self.appearance
|
||||
}
|
||||
|
||||
/// Returns the [`WindowBackgroundAppearance`] for the theme.
|
||||
#[inline(always)]
|
||||
pub fn window_background_appearance(&self) -> WindowBackgroundAppearance {
|
||||
self.styles.window_background_appearance
|
||||
}
|
||||
}
|
||||
|
||||
pub fn color_alpha(color: Hsla, alpha: f32) -> Hsla {
|
||||
|
||||
Reference in New Issue
Block a user