diff --git a/src/event.c b/src/event.c index 6de88f83..39a6f6a4 100644 --- a/src/event.c +++ b/src/event.c @@ -468,11 +468,14 @@ static inline void ev_property_notify(session_t *ps, xcb_property_notify_event_t win_update_opacity_prop(ps, w); // we cannot receive OPACITY change when window is destroyed assert(w->state != WSTATE_DESTROYING); + w->opacity_target = win_calc_opacity_target(ps, w, false); if (w->state == WSTATE_MAPPED) { // See the winstate_t transition table w->state = WSTATE_FADING; } - w->opacity_target = win_calc_opacity_target(ps, w, false); + if (!ps->redirected) { + CHECK(!win_skip_fading(ps, w)); + } } } diff --git a/src/win.c b/src/win.c index 50c717e7..fd247be9 100644 --- a/src/win.c +++ b/src/win.c @@ -121,6 +121,9 @@ static void win_update_focused(session_t *ps, struct managed_win *w) { if (opacity_target_old != w->opacity_target && w->state == WSTATE_MAPPED) { // Only MAPPED can transition to FADING w->state = WSTATE_FADING; + if (!ps->redirected) { + CHECK(!win_skip_fading(ps, w)); + } } }