diff --git a/src/compositor.c b/src/compositor.c index 20f7c70c01400169d19729432aecb13c3e89dd75..5e327ca74db06c8b0c1ef0151ac51618c5a349d7 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -1730,6 +1730,8 @@ compositorHandlePropertyNotify (DisplayInfo *display_info, XPropertyEvent *ev) if (cw) { + Client *c = cw->c; + TRACE ("Opacity changed for 0x%lx", cw->id); if (!getOpacity (display_info, cw->id, &cw->opacity)) { @@ -1737,6 +1739,18 @@ compositorHandlePropertyNotify (DisplayInfo *display_info, XPropertyEvent *ev) cw->opacity = NET_WM_OPAQUE; } set_win_opacity (cw, cw->opacity); + + /* Transset changes the property on the frame, not the client + window. We need to check and update the client "opacity" + value accordingly. + */ + if (c) + { + if (c->opacity != cw->opacity) + { + c->opacity = cw->opacity; + } + } } } else