summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKimmo Hämäläinen <kimmo.hamalainen@nokia.com>2010-12-22 19:00:43 +0200
committerAdam Endrodi <ext-adam.endrodi@nokia.com>2011-01-05 16:11:38 +0200
commit37955b3dad871931ccf89a4a129b6cb1ddade32d (patch)
tree61925f10919571bbe6ee85f1369968f8526fcc90
parent174f10c8d9bf189152203d1581a8d31efa383d2f (diff)
Fixes: NB#213095 - Call-history opens in the background while receiving 2nd missed call
- mark configured windows iconic when needed
-rw-r--r--src/mcompositemanager.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/mcompositemanager.cpp b/src/mcompositemanager.cpp
index 15118d3..a54d4c5 100644
--- a/src/mcompositemanager.cpp
+++ b/src/mcompositemanager.cpp
@@ -1351,6 +1351,10 @@ void MCompositeManagerPrivate::configureWindow(MCompositeWindow *cw,
if (e->value_mask & CWSibling) {
int above_i = stacking_list.indexOf(e->above);
if (above_i >= 0) {
+ Window d = stack[DESKTOP_LAYER];
+ if (d && stacking_list.indexOf(d) > above_i)
+ // mark iconic if it goes under desktop
+ setWindowState(e->window, IconicState);
if (above_i > win_i) {
STACKING_MOVE(win_i, above_i);
safe_move(stacking_list, win_i, above_i);
@@ -1372,6 +1376,10 @@ void MCompositeManagerPrivate::configureWindow(MCompositeWindow *cw,
if (e->value_mask & CWSibling) {
int above_i = stacking_list.indexOf(e->above);
if (above_i >= 0) {
+ Window d = stack[DESKTOP_LAYER];
+ if (d && stacking_list.indexOf(d) >= above_i)
+ // mark iconic if it goes under desktop
+ setWindowState(e->window, IconicState);
if (above_i > win_i) {
STACKING_MOVE(win_i, above_i-1);
safe_move(stacking_list, win_i, above_i - 1);
@@ -1383,10 +1391,13 @@ void MCompositeManagerPrivate::configureWindow(MCompositeWindow *cw,
}
} else {
Window parent = transient_for(e->window);
- if (parent)
+ if (parent) {
+ setWindowState(parent, IconicState);
positionWindow(parent, false);
- else
+ } else {
+ setWindowState(e->window, IconicState);
positionWindow(e->window, false);
+ }
}
}