T19: the main window lets the desktop through while Background opacity is under 1, blurred or clear as Background blur says, set at open and as the settings change; Ely's new ColumnShell::glass grounds every column and the title bar in the palette's glass, which the opacity sets, and the Ely pin moves to it past 27 of Ely's own commits; dialogs stay solid; the terminal paints no second ground; shot names the window's AppKit views
CI / platforms (windows-latest) (push) Failing after 8s
CI / macos (push) Failing after 8m32s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s

This commit is contained in:
ZacharyZhang-NY committed 2026-10-14 23:27:19 -04:00
1 parent d0162ef009
commit c98bbad6e0
11 files changed
+137 -28

No files matched your search

+11 -3
View File
@@ -9,10 +9,12 @@ use ely_gpui_component::{
use gpui::{
Action, App, AppContext, Context, Entity, EntityId, FocusHandle, Focusable, InteractiveElement,
IntoElement, KeyBinding, ParentElement, Render, SharedString, StatefulInteractiveElement,
StyleRefinement, Styled, Subscription, Window, actions, div, prelude::FluentBuilder,
StyleRefinement, Styled, Subscription, Window, WindowBackgroundAppearance, actions, div,
prelude::FluentBuilder,
};
use crate::{
blur,
files::Files,
git::panel::{Acted, GitPanel},
sessions::{self, Session},
@@ -84,6 +86,8 @@ pub struct Workspace {
active: usize,
files: Entity<Files>,
git: Entity<GitPanel>,
/// What the window shows of the desktop, as last set.
background: WindowBackgroundAppearance,
_settings: Subscription,
_acted: Subscription,
}
@@ -109,7 +113,11 @@ impl Workspace {
active: 0,
files: cx.new(|_| Files::new(launch.cwd.clone())),
git,
_settings: cx.observe_global::<SettingsStore>(|_, cx| cx.notify()),
background: blur::appearance(SettingsStore::get(cx)),
_settings: cx.observe_global_in::<SettingsStore>(window, |this, window, cx| {
blur::follow(window, &mut this.background, SettingsStore::get(cx));
cx.notify();
}),
_acted: acted,
};
workspace.add(pty, events, launch, window, cx);
@@ -316,7 +324,7 @@ impl Render for Workspace {
fn render(&mut self, _: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
let settings = SettingsStore::get(cx);
let width = cx.theme().sidebar_width(false);
let mut shell = ColumnShell::new("workspace");
let mut shell = ColumnShell::new("workspace").glass();
if settings.show_sessions {
let (workspace, home) = (cx.entity(), dirs::home_dir());
let rows = self.sessions.iter().enumerate().map(|(index, session)| {