diff --git a/scene_opengl_egl.cpp b/scene_opengl_egl.cpp index 33e8960413..06d196a480 100644 --- a/scene_opengl_egl.cpp +++ b/scene_opengl_egl.cpp @@ -200,14 +200,13 @@ int SceneOpenGL::paint(QRegion damage, ToplevelList toplevels) stacking_order.append(windows[ c ]); } - grabXServer(); XSync(display(), false); int mask = 0; paintScreen(&mask, &damage); // call generic implementation m_lastMask = mask; m_lastDamage = damage; glFlush(); - ungrabXServer(); + if (m_overlayWindow->window()) // show the window only after the first pass, since m_overlayWindow->show(); // that pass may take long diff --git a/scene_opengl_glx.cpp b/scene_opengl_glx.cpp index e0654b5861..e52d92881a 100644 --- a/scene_opengl_glx.cpp +++ b/scene_opengl_glx.cpp @@ -468,7 +468,6 @@ int SceneOpenGL::paint(QRegion damage, ToplevelList toplevels) stacking_order.append(windows[ c ]); } - grabXServer(); glXWaitX(); if (m_resetModelViewProjectionMatrix) { // reset model view projection matrix if required @@ -487,7 +486,6 @@ int SceneOpenGL::paint(QRegion damage, ToplevelList toplevels) glFlush(); - ungrabXServer(); if (m_overlayWindow->window()) // show the window only after the first pass, m_overlayWindow->show(); // since that pass may take long