fix(desktop): stop panel host from blocking macOS window drag

The shell's base stylesheet makes every direct body child no-drag
(`html[data-platform=darwin] body > :not(#root)`). The viewport-sized
`[data-dsh-panel-host]` layer inherited it, and since app-region ignores
pointer-events it cancelled every window-drag strip beneath it once the
shell recomputed regions.

Take the host and layer out of the app-region computation (`!important`,
the shell selector carries an id's specificity) and keep the panels
themselves no-drag so their controls still receive clicks.

Fixes #772

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
jorge guerrero
2026-09-26 21:45:48 -04:00
co-authored by Claude Opus 5.5
parent d641d2e211
commit fac59ae2f3
2 changed files with 26 additions and 0 deletions
+10
View File
@@ -615,6 +615,16 @@ test('conservative auto: URL stamps alone never modify the layout; plugin chrome
return false
})
expect(hasNoDragRule, 'the bundle must ship the drag-region opt-out rule').toBe(true)
// The viewport-sized panel host must NOT inherit the shell's blanket
// `body > :not(#root) { no-drag }` — it would cancel every window-drag
// strip beneath it on macOS (issue #772).
const hasHostReset = await page.evaluate(() => {
for (const tag of document.querySelectorAll('style')) {
if (tag.textContent !== null && /\[data-dsh-panel-host\]\{-webkit-app-region:\s*initial\s*!important/.test(tag.textContent)) return true
}
return false
})
expect(hasHostReset, 'the panel host must opt out of app-region computation').toBe(true)
})
test('standard WCO geometry drives the strip reactively (issue #257)', async ({ page }) => {