Fix a bug where overlay widgets from another container widget

would not be correctly transferred into the container widget that it's
dragged into.
This commit is contained in:
Syarif Fakhri
2022-09-06 17:42:26 +08:00
parent 6e35a9e7a7
commit fde133c25e
7 changed files with 82 additions and 57 deletions

View File

@@ -113,7 +113,7 @@ COverlayDockContainer::COverlayDockContainer(CDockManager* DockManager, SideTabB
updateMask();
updateSize();
DockManager->registerOverlayWidget(this);
parent->registerOverlayWidget(this);
d->DockArea->installEventFilter(this);
parent->installEventFilter(this);
@@ -140,8 +140,8 @@ void COverlayDockContainer::updateSize()
}
//============================================================================
COverlayDockContainer::COverlayDockContainer(CDockWidget* DockWidget, SideTabBarArea area) :
COverlayDockContainer(DockWidget->dockManager(), area, DockWidget->dockContainer() != nullptr ? DockWidget->dockContainer() : DockWidget->dockManager())
COverlayDockContainer::COverlayDockContainer(CDockWidget* DockWidget, SideTabBarArea area, CDockContainerWidget* parent) :
COverlayDockContainer(DockWidget->dockManager(), area, parent)
{
addDockWidget(DockWidget);
}
@@ -156,7 +156,7 @@ COverlayDockContainer::~COverlayDockContainer()
if (d->DockManager)
{
d->DockManager->removeOverlayWidget(this);
parentContainer()->removeOverlayWidget(this);
}
delete d;