Revert "Workaround crash in Aurorae destruction"
This reverts commit 275b7ee0f4
.
BUG: 395732
This commit is contained in:
parent
47b27b1885
commit
463ccfc8bb
2 changed files with 7 additions and 9 deletions
|
@ -270,6 +270,8 @@ Decoration::~Decoration()
|
||||||
if (m_context) {
|
if (m_context) {
|
||||||
m_context->makeCurrent(m_offscreenSurface.data());
|
m_context->makeCurrent(m_offscreenSurface.data());
|
||||||
|
|
||||||
|
delete m_renderControl;
|
||||||
|
delete m_view.data();
|
||||||
m_fbo.reset();
|
m_fbo.reset();
|
||||||
delete m_item;
|
delete m_item;
|
||||||
|
|
||||||
|
@ -322,8 +324,8 @@ void Decoration::init()
|
||||||
m_item->setParentItem(visualParent.value<QQuickItem*>());
|
m_item->setParentItem(visualParent.value<QQuickItem*>());
|
||||||
visualParent.value<QQuickItem*>()->setProperty("drawBackground", false);
|
visualParent.value<QQuickItem*>()->setProperty("drawBackground", false);
|
||||||
} else {
|
} else {
|
||||||
m_renderControl.reset(new QQuickRenderControl);
|
m_renderControl = new QQuickRenderControl(this);
|
||||||
m_view = new QQuickWindow(m_renderControl.data());
|
m_view = new QQuickWindow(m_renderControl);
|
||||||
bool usingGL = m_view->rendererInterface()->graphicsApi() == QSGRendererInterface::OpenGL;
|
bool usingGL = m_view->rendererInterface()->graphicsApi() == QSGRendererInterface::OpenGL;
|
||||||
m_view->setColor(Qt::transparent);
|
m_view->setColor(Qt::transparent);
|
||||||
m_view->setFlags(Qt::FramelessWindowHint);
|
m_view->setFlags(Qt::FramelessWindowHint);
|
||||||
|
@ -390,8 +392,8 @@ void Decoration::init()
|
||||||
}
|
}
|
||||||
m_updateTimer->start();
|
m_updateTimer->start();
|
||||||
};
|
};
|
||||||
connect(m_renderControl.data(), &QQuickRenderControl::renderRequested, this, requestUpdate);
|
connect(m_renderControl, &QQuickRenderControl::renderRequested, this, requestUpdate);
|
||||||
connect(m_renderControl.data(), &QQuickRenderControl::sceneChanged, this, requestUpdate);
|
connect(m_renderControl, &QQuickRenderControl::sceneChanged, this, requestUpdate);
|
||||||
|
|
||||||
m_item->setParentItem(m_view->contentItem());
|
m_item->setParentItem(m_view->contentItem());
|
||||||
|
|
||||||
|
|
|
@ -87,11 +87,7 @@ private:
|
||||||
KWin::Borders *m_extendedBorders;
|
KWin::Borders *m_extendedBorders;
|
||||||
KWin::Borders *m_padding;
|
KWin::Borders *m_padding;
|
||||||
QString m_themeName;
|
QString m_themeName;
|
||||||
|
QQuickRenderControl *m_renderControl = nullptr;
|
||||||
//workaround QtBug-68997
|
|
||||||
//deleting of a RenderControl/controlled window triggers deletion of other queued deleted items
|
|
||||||
//deleting this queued means we know we're not processing anything else at the same time and should minimise the damage
|
|
||||||
QScopedPointer<QQuickRenderControl, QScopedPointerDeleteLater> m_renderControl;
|
|
||||||
QScopedPointer<QTimer> m_updateTimer;
|
QScopedPointer<QTimer> m_updateTimer;
|
||||||
QScopedPointer<QOpenGLContext> m_context;
|
QScopedPointer<QOpenGLContext> m_context;
|
||||||
QScopedPointer<QOffscreenSurface> m_offscreenSurface;
|
QScopedPointer<QOffscreenSurface> m_offscreenSurface;
|
||||||
|
|
Loading…
Reference in a new issue