mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-10 13:31:38 +00:00
On macOS Tahoe (Darwin 25+), a nonzero titleBarOverlay height makes setWindowButtonPosition() miscalculate the native traffic-light position (electron#49183), shoving the lights into the left titlebar tools. Pass height 0 there so the lights land at the configured inset; the renderer paints its own drag strips, so nothing is lost. Pre-Tahoe is unchanged. Gate on the truthful Darwin kernel major (25 = Tahoe) rather than the product version, which macOS reports as 16 or 26 depending on build SDK.
43 lines
1.8 KiB
JavaScript
43 lines
1.8 KiB
JavaScript
'use strict'
|
|
|
|
const OVERLAY_FALLBACK_WIDTH = 144
|
|
|
|
/**
|
|
* Static pre-layout reservation (px) for the right-side native window-controls
|
|
* overlay (min/max/close). Only a FALLBACK — once laid out the renderer reads
|
|
* the exact width from navigator.windowControlsOverlay
|
|
* (use-window-controls-overlay-width.ts) and uses this value only when the WCO
|
|
* API is unavailable.
|
|
*
|
|
* macOS uses traffic lights positioned via trafficLightPosition, not a WCO
|
|
* overlay, so it reserves nothing here. Every other desktop platform now paints
|
|
* the Electron overlay (Windows, WSLg, and plain Linux KDE/GNOME), so they all
|
|
* reserve the fallback width.
|
|
*
|
|
* @param {{ isWindows?: boolean, isWsl?: boolean, isMac?: boolean }} opts
|
|
*/
|
|
function nativeOverlayWidth({ isWindows = false, isWsl = false, isMac = false } = {}) {
|
|
if (isMac) return 0
|
|
return OVERLAY_FALLBACK_WIDTH
|
|
}
|
|
|
|
// macOS Tahoe ships as Darwin 25 (Sequoia is 24); the Darwin number is truthful,
|
|
// unlike the product version which macOS reports as 16 or 26 depending on the
|
|
// build SDK.
|
|
const MACOS_TAHOE_DARWIN_MAJOR = 25
|
|
|
|
/**
|
|
* Height (px) to pass to `titleBarOverlay` on macOS. Tahoe (Darwin 25+)
|
|
* miscalculates the native traffic-light position when the overlay carries a
|
|
* nonzero height (electron#49183), shoving the lights into the left titlebar
|
|
* tools. Return 0 there so `setWindowButtonPosition` lands them at the configured
|
|
* inset; the renderer paints its own drag strips, so nothing is lost. Pre-Tahoe
|
|
* keeps the full titlebar height, byte-identical.
|
|
*
|
|
* @param {{ darwinMajor?: number, titlebarHeight?: number }} opts
|
|
*/
|
|
function macTitleBarOverlayHeight({ darwinMajor = 0, titlebarHeight = 0 } = {}) {
|
|
return darwinMajor >= MACOS_TAHOE_DARWIN_MAJOR ? 0 : titlebarHeight
|
|
}
|
|
|
|
module.exports = { MACOS_TAHOE_DARWIN_MAJOR, OVERLAY_FALLBACK_WIDTH, macTitleBarOverlayHeight, nativeOverlayWidth }
|