diff --git a/src/effect/offscreenquickview.cpp b/src/effect/offscreenquickview.cpp index e9ef560e93..8f9f6ec625 100644 --- a/src/effect/offscreenquickview.cpp +++ b/src/effect/offscreenquickview.cpp @@ -159,9 +159,8 @@ OffscreenQuickView::~OffscreenQuickView() d->m_glcontext->makeCurrent(d->m_offscreenSurface.get()); } - // Always delete render control first. - d->m_renderControl.reset(); d->m_view.reset(); + d->m_renderControl.reset(); } bool OffscreenQuickView::automaticRepaint() const diff --git a/src/scripting/windowthumbnailitem.cpp b/src/scripting/windowthumbnailitem.cpp index 58d0e7fb4e..d8b26d980e 100644 --- a/src/scripting/windowthumbnailitem.cpp +++ b/src/scripting/windowthumbnailitem.cpp @@ -22,6 +22,7 @@ #include "opengl/gltexture.h" +#include #include #include #include @@ -57,16 +58,15 @@ WindowThumbnailSource::~WindowThumbnailSource() if (!m_offscreenTexture) { return; } - if (WorkspaceScene *scene = Compositor::self()->scene()) { - scene->makeOpenGLContextCurrent(); - m_offscreenTarget.reset(); - m_offscreenTexture.reset(); + if (!QOpenGLContext::currentContext()) { + Compositor::self()->scene()->makeOpenGLContextCurrent(); + } + m_offscreenTarget.reset(); + m_offscreenTexture.reset(); - if (m_acquireFence) { - glDeleteSync(m_acquireFence); - m_acquireFence = 0; - } - scene->doneOpenGLContextCurrent(); + if (m_acquireFence) { + glDeleteSync(m_acquireFence); + m_acquireFence = 0; } }