diff options
author | Kimmo Hämäläinen <kimmo.hamalainen@nokia.com> | 2010-07-22 09:57:42 +0300 |
---|---|---|
committer | Kimmo Hämäläinen <kimmo.hamalainen@nokia.com> | 2010-07-22 09:57:42 +0300 |
commit | 7184cb3aafca61dc0f6e6ca8d855ee8813db49d0 (patch) | |
tree | 86ea07d886c80b51589bc1bc7e38a62d18fda783 /src | |
parent | 9fb8f6b57fea420c1440f2d57afe629abcff535e (diff) |
Changes: Stack the decorator low when the managed client is iconic.
Diffstat (limited to 'src')
-rw-r--r-- | src/mcompositemanager.cpp | 7 | ||||
-rw-r--r-- | src/mdecoratorframe.h | 1 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/mcompositemanager.cpp b/src/mcompositemanager.cpp index 668407d..15d2293 100644 --- a/src/mcompositemanager.cpp +++ b/src/mcompositemanager.cpp @@ -2502,13 +2502,16 @@ static int cmp_windows(const void *a, const void *b) Window w_b = *((Window*)b); MCompositeWindow *cw_a = comp_man_priv->windows.value(w_a, 0), *cw_b = comp_man_priv->windows.value(w_b, 0); + MDecoratorFrame *deco = MDecoratorFrame::instance(); // a is unused decorator? if (cw_a->propertyCache()->isDecorator() && - !MDecoratorFrame::instance()->managedWindow()) + (!deco->managedClient() || + deco->managedClient()->propertyCache()->windowState() != NormalState)) return -1; // b is unused decorator? if (cw_b->propertyCache()->isDecorator() && - !MDecoratorFrame::instance()->managedWindow()) + (!deco->managedClient() || + deco->managedClient()->propertyCache()->windowState() != NormalState)) return 1; // a iconified, or a is desktop and b not iconified? if (cw_a->propertyCache()->windowState() == IconicState || diff --git a/src/mdecoratorframe.h b/src/mdecoratorframe.h index 3b309d9..411be28 100644 --- a/src/mdecoratorframe.h +++ b/src/mdecoratorframe.h @@ -46,6 +46,7 @@ public: * Retuns the window id of the managed window. */ Qt::HANDLE managedWindow() const; + MCompositeWindow *managedClient() const { return client; } /*! * Returns the window id of the decorator window. |