diff options
author | Kimmo Hämäläinen <kimmo.hamalainen@nokia.com> | 2010-12-22 19:00:43 +0200 |
---|---|---|
committer | Adam Endrodi <ext-adam.endrodi@nokia.com> | 2011-01-05 16:11:38 +0200 |
commit | 37955b3dad871931ccf89a4a129b6cb1ddade32d (patch) | |
tree | 61925f10919571bbe6ee85f1369968f8526fcc90 | |
parent | 174f10c8d9bf189152203d1581a8d31efa383d2f (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.cpp | 15 |
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); + } } } |