Skip to content

Commit 10520b6

Browse files
committed
bug: popup within floating panel
1 parent 22deb85 commit 10520b6

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

packages/dockview-core/src/dockview/components/popupService.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,13 @@ export class PopupService extends CompositeDisposable {
7171

7272
openPopover(
7373
element: HTMLElement,
74-
position: { x: number; y: number }
74+
position: { x: number; y: number; zIndex?: string }
7575
): void {
7676
this.close();
7777

7878
const wrapper = document.createElement('div');
7979
wrapper.style.position = 'absolute';
80-
wrapper.style.zIndex = '99';
80+
wrapper.style.zIndex = position.zIndex ?? 'var(--dv-overlay-z-index)';
8181
wrapper.appendChild(element);
8282

8383
const anchorBox = this._element.getBoundingClientRect();
@@ -92,7 +92,7 @@ export class PopupService extends CompositeDisposable {
9292
this._active = wrapper;
9393

9494
this._activeDisposable.value = new CompositeDisposable(
95-
addDisposableListener(window, 'pointerdown', (event) => {
95+
addDisposableListener(window, 'pointerdown', (event) => {
9696
const target = event.target;
9797

9898
if (!(target instanceof HTMLElement)) {

packages/dockview-core/src/dockview/components/titlebar/tabsContainer.ts

+13-1
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ export class TabsContainer
378378
!panelObject.api.isActive
379379
);
380380

381-
wrapper.addEventListener('mousedown', () => {
381+
wrapper.addEventListener('pointerdown', () => {
382382
this.accessor.popupService.close();
383383
tab.element.scrollIntoView();
384384
tab.panel.api.setActive();
@@ -388,9 +388,21 @@ export class TabsContainer
388388
el.appendChild(wrapper);
389389
}
390390

391+
let tmp: HTMLElement | null = root;
392+
393+
while (
394+
tmp &&
395+
(tmp.style.zIndex === 'auto' || tmp.style.zIndex === '')
396+
) {
397+
tmp = tmp.parentElement;
398+
}
399+
391400
this.accessor.popupService.openPopover(el, {
392401
x: event.clientX,
393402
y: event.clientY,
403+
zIndex: tmp?.style.zIndex
404+
? `calc(${tmp.style.zIndex} + 1)`
405+
: undefined,
394406
});
395407
})
396408
);

0 commit comments

Comments
 (0)