diff --git a/src/ecompmgr.c b/src/ecompmgr.c index 2c75bd60..5753c69c 100644 --- a/src/ecompmgr.c +++ b/src/ecompmgr.c @@ -2147,6 +2147,12 @@ ECompMgrIsActive(void) return Mode_compmgr.active; } +EX_Window +ECompMgrRootWin(void) +{ + return Mode_compmgr.root; +} + static void ECompMgrStart(void) { diff --git a/src/ecompmgr.h b/src/ecompmgr.h index f759f241..f840f15a 100644 --- a/src/ecompmgr.h +++ b/src/ecompmgr.h @@ -68,6 +68,8 @@ void ECompMgrConfigSet(const cfg_composite * cfg); void ECompMgrRepaint(void); int ECompMgrRender(int dt); +EX_Window ECompMgrRootWin(void); + #else #define ECompMgrIsActive() 0 diff --git a/src/fx.c b/src/fx.c index 1dde5277..bb5a81fe 100644 --- a/src/fx.c +++ b/src/fx.c @@ -72,7 +72,12 @@ _FxSetup(FXData * d, unsigned int height) if (!d->above) { d->win = EobjGetWin(bgeo); - d->root = EobjGetXwin(bgeo); +#if USE_COMPOSITE + if (ECompMgrIsActive() && !Mode.wm.window) + d->root = ECompMgrRootWin(); + else +#endif + d->root = EobjGetXwin(bgeo); d->above = ECreatePixmap(d->win, WinGetW(VROOT), height, 0); XGCValues xgcv;