mirror of
https://github.com/mathuo/dockview
synced 2025-09-16 22:29:57 +00:00
fix: self dropping group dnd
This commit is contained in:
parent
747049b8f3
commit
bf350e404b
@ -247,17 +247,12 @@ export class Groupview extends CompositeDisposable implements IGroupview {
|
|||||||
|
|
||||||
const data = getPanelData();
|
const data = getPanelData();
|
||||||
|
|
||||||
if (
|
|
||||||
data &&
|
|
||||||
data.panelId === null &&
|
|
||||||
data.viewId === this.accessor.id &&
|
|
||||||
data.groupId !== this.id
|
|
||||||
) {
|
|
||||||
// prevent dropping on self for group dnd
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (data && data.viewId === this.accessor.id) {
|
if (data && data.viewId === this.accessor.id) {
|
||||||
|
if (data.panelId === null && data.groupId === this.id) {
|
||||||
|
// don't allow group move to drop on self
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
const groupHasOnePanelAndIsActiveDragElement =
|
const groupHasOnePanelAndIsActiveDragElement =
|
||||||
this._panels.length === 1 && data.groupId === this.id;
|
this._panels.length === 1 && data.groupId === this.id;
|
||||||
|
|
||||||
|
@ -106,6 +106,14 @@ export class Tab extends CompositeDisposable implements ITab {
|
|||||||
const data = getPanelData();
|
const data = getPanelData();
|
||||||
|
|
||||||
if (data && this.accessor.id === data.viewId) {
|
if (data && this.accessor.id === data.viewId) {
|
||||||
|
if (
|
||||||
|
data.panelId === null &&
|
||||||
|
data.groupId === this.group.id
|
||||||
|
) {
|
||||||
|
// don't allow group move to drop on self
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return this.panelId !== data.panelId;
|
return this.panelId !== data.panelId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,6 +46,14 @@ export class VoidContainer extends CompositeDisposable {
|
|||||||
const data = getPanelData();
|
const data = getPanelData();
|
||||||
|
|
||||||
if (data && this.accessor.id === data.viewId) {
|
if (data && this.accessor.id === data.viewId) {
|
||||||
|
if (
|
||||||
|
data.panelId === null &&
|
||||||
|
data.groupId === this.group.id
|
||||||
|
) {
|
||||||
|
// don't allow group move to drop on self
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
// don't show the overlay if the tab being dragged is the last panel of this group
|
// don't show the overlay if the tab being dragged is the last panel of this group
|
||||||
return last(this.group.panels)?.id !== data.panelId;
|
return last(this.group.panels)?.id !== data.panelId;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user