mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 19:04:02 +00:00
fix(ui): floating panels stay on-screen and clear of the command dock
From gekh's review of #768, each with a test that fails before: - P2: a floating panel whose content grows (CCTV expanded, a photo opened) is pulled back on-screen: every portable panel is observed and re-clamped, not only on window resize. - P2: a floating header can never land under #command-dock or the voice pill (the rail's stacking context paints below them): clamping keeps the header clear of their rects on drag, restore and every re-clamp. - A live window resize shrinks a floating window wider or taller than the viewport; Cyber's accordion no longer collapses docked panels when a floating one opens. - The three pointer gestures share one helper (threshold, mouse/pen only, cancel reverts), and the header-drag threshold now has a test. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
bb88a8b034
commit
bbe7aff242
4 files changed
+502
-186
No files matched your search
@@ -419,12 +419,15 @@ export class PanelChrome {
|
||||
panelEl.classList.contains('cyber-accordion-collapsed');
|
||||
// A user opening a Cyber rail panel owns the whole accordion, including
|
||||
// peers that were only presentation-collapsed during a saved-state restore.
|
||||
// A floating window is outside the accordion both ways: opening one
|
||||
// leaves the rail's panels as they are.
|
||||
if (
|
||||
explicit &&
|
||||
!restore &&
|
||||
!nextCollapsed &&
|
||||
document.documentElement?.dataset.uiTheme === 'cyber' &&
|
||||
panelEl.parentElement === this._rightPanelStack
|
||||
panelEl.parentElement === this._rightPanelStack &&
|
||||
!panelEl.classList.contains('panel-floating')
|
||||
) {
|
||||
for (const peer of this._rightPanelStack.children) {
|
||||
if (
|
||||
|
||||
Reference in new issue
Block a user