diff options
author | Kimmo Hämäläinen <kimmo.hamalainen@nokia.com> | 2010-12-01 14:06:49 +0200 |
---|---|---|
committer | Adam Endrodi <ext-adam.endrodi@nokia.com> | 2010-12-03 14:02:30 +0200 |
commit | 82fa211e433b13aac295d9e91b51c91a5ab58fc4 (patch) | |
tree | 6d38fc0661b7908a11f53bf71383fb572b17d2f2 | |
parent | 0baaf6c7997a061a54404bd738230652d457953b (diff) |
Partially Fixes: NB#208395 - Lock ui is revealing another copy of it
- do not iconify all windows in lowerHandler(), we have windows that are not
iconified nowadays
- iconifyApps(): use dontIconify() instead of cannotMinimize()
- updateWindowPixmap(): we want to update the pixmap even if the item is not
visible because certain animations require up-to-date pixmap
-rw-r--r-- | src/mcompositemanager.cpp | 16 | ||||
-rw-r--r-- | src/mtexturepixmapitem_egl.cpp | 6 |
2 files changed, 10 insertions, 12 deletions
diff --git a/src/mcompositemanager.cpp b/src/mcompositemanager.cpp index 7673dd6..6892415 100644 --- a/src/mcompositemanager.cpp +++ b/src/mcompositemanager.cpp @@ -2625,17 +2625,13 @@ void MCompositeManagerPrivate::lowerHandler(MCompositeWindow *window) if (i) i->iconify(); } - // don't mark unmapped windows iconic (our iconic windows are mapped) - if (window->isMapped()) - // set for roughSort() before raising duihome + if (window->isMapped()) { + // set for roughSort() setWindowState(window->window(), IconicState); - - if (stack[DESKTOP_LAYER]) { - // redirect windows for the switcher - enableCompositing(); - positionWindow(stack[DESKTOP_LAYER], true); - dirtyStacking(false); + roughSort(); } + // checkStacking() will redirect windows for the switcher + dirtyStacking(false); // Reset the global alpha on minimize reset_global_alpha(); @@ -3341,7 +3337,7 @@ void MCompositeManagerPrivate::iconifyApps() Window w = stacking_list.at(wi); MCompositeWindow *cw = COMPOSITE_WINDOW(w); if (cw && cw->propertyCache() && cw->propertyCache()->isMapped() - && !cw->propertyCache()->cannotMinimize() + && !cw->propertyCache()->dontIconify() && !cw->propertyCache()->meegoStackingLayer() && cw->isAppWindow(true)) setWindowState(cw->window(), IconicState); diff --git a/src/mtexturepixmapitem_egl.cpp b/src/mtexturepixmapitem_egl.cpp index 3bd7b60..e59fbaf 100644 --- a/src/mtexturepixmapitem_egl.cpp +++ b/src/mtexturepixmapitem_egl.cpp @@ -283,8 +283,10 @@ void MTexturePixmapItem::updateWindowPixmap(XRectangle *rects, int num, d->pastDamages = NULL; } - if (d->direct_fb_render || !windowVisible() - || propertyCache()->isInputOnly()) + // we want to update the pixmap even if the item is not visible because + // certain animations require up-to-date pixmap (alternatively we could mark + // it dirty and update it before the animation starts...) + if (d->direct_fb_render || propertyCache()->isInputOnly()) return; QRegion r; |