From 4a169212421a41a34c65821ef20350dc00ead7c8 Mon Sep 17 00:00:00 2001 From: Hampus Date: Wed, 19 Aug 2026 13:05:42 +0200 Subject: [PATCH] fix(app): stop macOS window chrome from swallowing clicks below the titlebar (#1748) --- .../components/layout/NativeDragRegion.module.css | 4 ---- .../AdvancedDesktopControls.tsx | 1 + .../search_index/DesktopSettingsIndex.ts | 4 ++-- .../src/features/window/hooks/useNativeTitleBar.ts | 12 ++++++++++-- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/fluxer_app/src/features/app/components/layout/NativeDragRegion.module.css b/fluxer_app/src/features/app/components/layout/NativeDragRegion.module.css index 9c861efe2..60bafa289 100644 --- a/fluxer_app/src/features/app/components/layout/NativeDragRegion.module.css +++ b/fluxer_app/src/features/app/components/layout/NativeDragRegion.module.css @@ -3,7 +3,3 @@ .nativeDragRegion { -webkit-app-region: none; } - -:global(html.platform-native.platform-macos) .nativeDragRegion { - -webkit-app-region: drag; -} diff --git a/fluxer_app/src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedDesktopControls.tsx b/fluxer_app/src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedDesktopControls.tsx index cdb3bcf28..0e11e0b24 100644 --- a/fluxer_app/src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedDesktopControls.tsx +++ b/fluxer_app/src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedDesktopControls.tsx @@ -156,6 +156,7 @@ export const NativeTitleBarControl = observer(() => { }, [i18n, updateDesktopWindowBehavior], ); + if (getElectronAPI()?.platform === 'darwin') return null; return ( = [ ], description: USE_THE_OPERATING_SYSTEM_S_WINDOW_CHROME_DESCRIPTOR, tags: ['desktop', 'appearance'], - isVisible: isDesktop, + isVisible: () => isDesktop() && !isNativeMacOS(getNativePlatformSync()), }, { id: 'advanced-tray-icon', diff --git a/fluxer_app/src/features/window/hooks/useNativeTitleBar.ts b/fluxer_app/src/features/window/hooks/useNativeTitleBar.ts index 8ed04fb9d..fa8ad57ef 100644 --- a/fluxer_app/src/features/window/hooks/useNativeTitleBar.ts +++ b/fluxer_app/src/features/window/hooks/useNativeTitleBar.ts @@ -1,7 +1,7 @@ // SPDX-License-Identifier: AGPL-3.0-or-later import {getDesktopWindowBehaviorSettings} from '@app/features/ui/utils/DesktopWindowBehaviorUtils'; -import {isDesktop} from '@app/features/ui/utils/NativeUtils'; +import {getNativePlatformSync, isDesktop, isNativeMacOS} from '@app/features/ui/utils/NativeUtils'; import {useEffect, useState} from 'react'; const TITLEBAR_HEIGHT_CSS_VAR = '--native-titlebar-height'; @@ -9,8 +9,12 @@ const CUSTOM_TITLEBAR_HEIGHT = '32px'; const NATIVE_TITLEBAR_HEIGHT = '0px'; const NATIVE_SYSTEM_TITLEBAR_CLASS = 'native-system-titlebar'; +function supportsSystemTitleBar(): boolean { + return isDesktop() && !isNativeMacOS(getNativePlatformSync()); +} + function getInitialUseSystemTitleBar(): boolean { - return isDesktop() && document.documentElement.classList.contains(NATIVE_SYSTEM_TITLEBAR_CLASS); + return supportsSystemTitleBar() && document.documentElement.classList.contains(NATIVE_SYSTEM_TITLEBAR_CLASS); } export function useNativeTitleBar(): boolean { @@ -19,6 +23,10 @@ export function useNativeTitleBar(): boolean { if (!isDesktop()) { return; } + if (!supportsSystemTitleBar()) { + setUseSystemTitleBar(false); + return; + } let mounted = true; void getDesktopWindowBehaviorSettings().then((settings) => { if (!mounted || !settings) {