From eebc642138c5524c9297ff7fddab8d7a17ef0f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ruben=20R=C3=B6hner?= Date: Thu, 20 Nov 2025 11:19:10 +0100 Subject: [PATCH] fix: respect sidebar decoration color in macos window (#587) --- CHANGELOG.md | 4 ++++ lib/src/layout/window.dart | 21 ++++++++++----------- pubspec.yaml | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10816f76..bacfa4a9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## [2.2.3] +### 🛠 Fixed 🛠 +- Fixed sidebar background painting when wallpaper tinting is disabled: the macOS sidebar now stays transparent unless a decoration color is provided (previously showed a black strip). Addresses #587. + ## [2.2.2] ### 🛠 Fixed 🛠 - Fixed setState called after dispose issue in MacosPulldownButton. diff --git a/lib/src/layout/window.dart b/lib/src/layout/window.dart index 5e0f447c..d9dc330e 100644 --- a/lib/src/layout/window.dart +++ b/lib/src/layout/window.dart @@ -195,18 +195,15 @@ class _MacosWindowState extends State { } final MacosThemeData theme = MacosTheme.of(context); late Color backgroundColor = widget.backgroundColor ?? theme.canvasColor; - late Color sidebarBackgroundColor; + late Color? sidebarBackgroundColor; late Color endSidebarBackgroundColor; Color dividerColor = theme.dividerColor; final isMac = !kIsWeb && defaultTargetPlatform == TargetPlatform.macOS; // Respect the sidebar color override from parent if one is given - if (sidebar?.decoration?.color != null) { - sidebarBackgroundColor = sidebar!.decoration!.color!; - } else { - sidebarBackgroundColor = MacosColors.transparent; - } + sidebarBackgroundColor = + sidebar?.decoration?.color ?? (kIsWeb ? theme.canvasColor : null); // Set the application window's brightness on macOS MacOSBrightnessOverrideHandler.ensureMatchingBrightness(theme.brightness); @@ -273,7 +270,7 @@ class _MacosWindowState extends State { ).normalize(), child: kIsWeb ? ColoredBox( - color: theme.canvasColor, + color: sidebarBackgroundColor ?? theme.canvasColor, child: Column( children: [ // If an app is running on macOS, apply @@ -326,10 +323,12 @@ class _MacosWindowState extends State { : TransparentMacOSSidebar( state: sidebarState, child: DecoratedBox( - decoration: const BoxDecoration( - color: Color.fromRGBO(0, 0, 0, 1.0), - backgroundBlendMode: BlendMode.clear, - ), + decoration: + (sidebar.decoration ?? const BoxDecoration()) + .copyWith( + // Only paint if the caller set a color; null preserves native transparency. + color: sidebarBackgroundColor, + ), child: Column( children: [ // If an app is running on macOS, apply diff --git a/pubspec.yaml b/pubspec.yaml index 886bb6b4..c6355f3f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: macos_ui description: Flutter widgets and themes implementing the current macOS design language. -version: 2.2.2 +version: 2.2.3 homepage: "https://macosui.dev" repository: "https://github.com/GroovinChip/macos_ui"