--- rxvt-unicode/src/command.C 2012/12/30 15:05:19 1.529 +++ rxvt-unicode/src/command.C 2012/12/31 12:05:34 1.532 @@ -1474,7 +1474,7 @@ if (bg_window_position_sensitive ()) { want_position_change = true; - if (!(bg_flags & BG_IS_VALID)) + if (bg_img == 0) moved = true; } #endif @@ -1538,7 +1538,7 @@ // events at startup when the window manager reparents the // window, so as to perform the computation after we have // received all of them. - if (!(bg_flags & BG_IS_VALID)) + if (bg_img == 0) update_background_ev.start (0.025); #endif mapped = 1; @@ -1856,8 +1856,11 @@ || ev.xproperty.atom == xa[XA_ESETROOT_PMAP_ID]) { #if BG_IMAGE_FROM_ROOT - bg_set_root_pixmap (); - update_background (); + if (option (Opt_transparent)) + { + rxvt_img::new_from_root (this)->replace (root_img); + update_background (); + } #endif #if ENABLE_PERL HOOK_INVOKE ((this, HOOK_ROOTPMAP_CHANGE, DT_END));