feat: split view pro — TabManager indépendant par panneau avec drag & drop cross-pane
CI / lint (push) Failing after 10s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Successful in 17s
Desktop Build / build-windows (push) Has been cancelled
Desktop Build / build-linux (push) Has been cancelled

- PaneTabManager factory: chaque panneau a sa propre instance avec ses propres onglets
- Drag & drop d'onglets entre panneaux (application/obsigate-tab dataTransfer)
- Split copie l'onglet actif dans le nouveau panneau
- TabManager singleton: délégation automatique vers le panneau actif en mode split
- Persistance complète par panneau (tabs, activeTab, previewTab)
- viewer.js: getContentArea() priorise window._activePaneContentArea
- 307 tests verts, déployé sur 192.168.30.101:2020
This commit is contained in:
2026-07-27 21:37:04 -04:00
parent b27b38d32b
commit ed4c1dcf07
4 changed files with 783 additions and 301 deletions
+5 -3
View File
@@ -12,10 +12,12 @@ import { openShareDialog } from './config.js';
import { cacheViewedFile, getCachedFile } from './offline.js';
import { t } from './i18n.js';
// Pane-aware content area helper
// Pane-aware content area helper — delegates to PaneManager when split
function getContentArea() {
if (window.PaneManager && window.PaneManager.isSplit()) {
return window.PaneManager.getActiveContentArea();
// Override set by PaneTabManager._renderFileInPane for cross-module rendering
if (window._activePaneContentArea) return window._activePaneContentArea;
if (window.PaneManager && window.PaneManager.isSplit() && window.getActiveContentArea) {
return window.getActiveContentArea();
}
return document.getElementById('content-area');
}