Merge branch 'Plasma/5.7'

icc-effect-5.14.5
Martin Gräßlin 2016-08-19 07:46:46 +02:00
commit d03a50c6e1
3 changed files with 13 additions and 9 deletions

View File

@ -920,6 +920,15 @@ WindowQuadList Scene::Window::makeQuads(WindowQuadType type, const QRegion& reg,
return ret;
}
void Scene::Window::updateShadow(Shadow* shadow)
{
if (m_shadow == shadow) {
return;
}
delete m_shadow;
m_shadow = shadow;
}
//****************************************
// WindowPixmap
//****************************************

View File

@ -541,12 +541,6 @@ void Scene::Window::updateToplevel(Toplevel* c)
toplevel = c;
}
inline
void Scene::Window::updateShadow(Shadow* shadow)
{
m_shadow = shadow;
}
inline
const Shadow* Scene::Window::shadow() const
{

View File

@ -337,10 +337,11 @@ bool Shadow::updateShadow()
auto clear = [this]() {
if (m_topLevel && m_topLevel->effectWindow() && m_topLevel->effectWindow()->sceneWindow() &&
m_topLevel->effectWindow()->sceneWindow()->shadow()) {
m_topLevel->effectWindow()->sceneWindow()->updateShadow(0);
m_topLevel->effectWindow()->buildQuads(true);
auto w = m_topLevel->effectWindow();
// this also deletes the shadow
w->sceneWindow()->updateShadow(nullptr);
w->buildQuads(true);
}
deleteLater();
};
if (m_decorationShadow) {
if (AbstractClient *c = qobject_cast<AbstractClient*>(m_topLevel)) {