summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKimmo Hämäläinen <kimmo.hamalainen@nokia.com>2010-12-01 14:06:49 +0200
committerAdam Endrodi <ext-adam.endrodi@nokia.com>2010-12-03 14:02:30 +0200
commit82fa211e433b13aac295d9e91b51c91a5ab58fc4 (patch)
tree6d38fc0661b7908a11f53bf71383fb572b17d2f2
parent0baaf6c7997a061a54404bd738230652d457953b (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.cpp16
-rw-r--r--src/mtexturepixmapitem_egl.cpp6
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;