mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-05 10:53:59 +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
@@ -85,3 +85,16 @@ test('non-Cyber explicit panels and restored preferences retain their existing p
|
||||
} finally { globalThis.document = prior; }
|
||||
}
|
||||
});
|
||||
|
||||
test('opening a floating Cyber window leaves the docked rail panels open', () => {
|
||||
const f = fixture(), prior = globalThis.document;
|
||||
globalThis.document = f.doc;
|
||||
try {
|
||||
f.owner.setPanelCollapsed('pp-toggles', false, { explicit: true });
|
||||
f.cctv.classList.add('panel-floating');
|
||||
f.owner.setPanelCollapsed('cctv-panel', false, { explicit: true });
|
||||
assert.equal(f.cctv.classList.contains('collapsed'), false);
|
||||
assert.equal(f.display.classList.contains('collapsed'), false, 'DISPLAY stays open');
|
||||
assert.ok(!f.saved.some(([id, collapsed]) => id === 'pp-toggles' && collapsed));
|
||||
} finally { globalThis.document = prior; }
|
||||
});
|
||||
Reference in new issue
Block a user