diff --git a/app/layout/genericlayout.cpp b/app/layout/genericlayout.cpp index 46feeda90..e78767144 100644 --- a/app/layout/genericlayout.cpp +++ b/app/layout/genericlayout.cpp @@ -1379,6 +1379,11 @@ void GenericLayout::syncLatteViewsToScreens(Layout::ViewsMap *occupiedMap) m_pendingContainmentUpdates.remove(pendingid); } + if (m_pendingContainmentUpdates.rowCount() > 0) { + qDebug () << " Pending View updates still valid : "; + m_pendingContainmentUpdates.print(); + } + //! use valid views map based on active screens Layout::ViewsMap viewsMap = validViewsMap(occupiedMap); @@ -1586,7 +1591,7 @@ void GenericLayout::updateView(const Latte::Data::View &viewData) //! active -> inactiveinmemory [viewscenario] auto containment = containmentForId(viewData.id.toUInt()); if (containment) { - Layouts::Storage::self()->updateView(containment->config(), viewData); + Layouts::Storage::self()->updateView(this, viewData); //! by using pendingContainmentUpdates we make sure that when containment->screen() will be //! called though reactToScreenChange() the proper screen will be returned diff --git a/app/layouts/storage.cpp b/app/layouts/storage.cpp index db8e4941b..661c49219 100644 --- a/app/layouts/storage.cpp +++ b/app/layouts/storage.cpp @@ -1317,6 +1317,8 @@ void Storage::updateView(const Layout::GenericLayout *layout, const Data::View & //! active view but is not present in active screens; auto containment = layout->containmentForId(viewData.id.toUInt()); if (containment) { + //! update containment + containment->setLocation(viewData.edge); updateView(containment->config(), viewData); } } else { diff --git a/app/view/view.cpp b/app/view/view.cpp index 1fa387ffb..84aec779e 100644 --- a/app/view/view.cpp +++ b/app/view/view.cpp @@ -1661,6 +1661,7 @@ void View::restoreConfig() //! Send changed signals at the end in order to be sure that saveConfig //! wont rewrite default/invalid values + emit alignmentChanged(); emit onPrimaryChanged(); emit byPassWMChanged(); }