Merge branch '230-explore-floating-groups' of https://github.com/mathuo/dockview into 230-explore-floating-groups

This commit is contained in:
mathuo 2023-07-02 20:35:04 +01:00
commit b2b58a4e57
No known key found for this signature in database
GPG Key ID: C6EEDEFD6CA07281
2 changed files with 18 additions and 2 deletions

View File

@ -8,6 +8,7 @@
height: 100%; height: 100%;
width: 100%; width: 100%;
z-index: 10000; z-index: 10000;
pointer-events: none;
> .drop-target-selection { > .drop-target-selection {
position: relative; position: relative;
@ -15,7 +16,9 @@
height: 100%; height: 100%;
width: 100%; width: 100%;
background-color: var(--dv-drag-over-background-color); background-color: var(--dv-drag-over-background-color);
transition: top 70ms ease-out,left 70ms ease-out,width 70ms ease-out,height 70ms ease-out,opacity .15s ease-out; transition: top 70ms ease-out, left 70ms ease-out,
width 70ms ease-out, height 70ms ease-out,
opacity 0.15s ease-out;
will-change: transform; will-change: transform;
pointer-events: none; pointer-events: none;

View File

@ -54,6 +54,17 @@ export type CanDisplayOverlay =
| boolean | boolean
| ((dragEvent: DragEvent, state: Position) => boolean); | ((dragEvent: DragEvent, state: Position) => boolean);
const eventMarkTag = 'dv_droptarget_marked';
function markEvent(event: DragEvent): void {
(event as any)[eventMarkTag] = true;
}
function isEventMarked(event: DragEvent) {
const value = (event as any)[eventMarkTag];
return typeof value === 'boolean' && value;
}
export class Droptarget extends CompositeDisposable { export class Droptarget extends CompositeDisposable {
private targetElement: HTMLElement | undefined; private targetElement: HTMLElement | undefined;
private overlayElement: HTMLElement | undefined; private overlayElement: HTMLElement | undefined;
@ -114,7 +125,7 @@ export class Droptarget extends CompositeDisposable {
height height
); );
if (quadrant === null) { if (isEventMarked(e) || quadrant === null) {
// no drop target should be displayed // no drop target should be displayed
this.removeDropTarget(); this.removeDropTarget();
return; return;
@ -128,6 +139,8 @@ export class Droptarget extends CompositeDisposable {
return; return;
} }
markEvent(e);
if (!this.targetElement) { if (!this.targetElement) {
this.targetElement = document.createElement('div'); this.targetElement = document.createElement('div');
this.targetElement.className = 'drop-target-dropzone'; this.targetElement.className = 'drop-target-dropzone';