another attempt at tab blanking/flicker

This commit is contained in:
Eugene
2026-06-29 00:43:53 +02:00
parent 3caf1a5c87
commit 6955c4f8e8
3 changed files with 76 additions and 3 deletions
@@ -191,6 +191,21 @@ export class AppRootComponent {
this.ready = true
this.app.emitReady()
})
// While the window is being dragged, suppress the split-pane layout
// transition (see splitTab.component.scss). Animating pane geometry on
// every resize frame triggers a full-layer repaint that flickers the
// terminal; the transition is only wanted for split/close/maximize.
let resizeEndTimeout: any = null
window.addEventListener('resize', () => {
document.body.classList.add('resizing')
if (resizeEndTimeout) {
clearTimeout(resizeEndTimeout)
}
resizeEndTimeout = setTimeout(() => {
document.body.classList.remove('resizing')
}, 200)
})
}
@HostListener('dragover')
@@ -28,3 +28,9 @@
::ng-deep .no-animations split-tab > .child {
transition: none;
}
// While the window is being resized, don't animate pane geometry — the
// transition would otherwise repaint the whole layer each frame and flicker.
::ng-deep .resizing split-tab > .child {
transition: none;
}