--- rxvt-unicode/src/screen.C 2012/10/02 10:29:12 1.426 +++ rxvt-unicode/src/screen.C 2013/01/13 20:16:40 1.430 @@ -282,8 +282,11 @@ memcpy (drawn_buf [row].t, prev_drawn_buf [row].t, sizeof (text_t) * common_col); memcpy (drawn_buf [row].r, prev_drawn_buf [row].r, sizeof (rend_t) * common_col); + memcpy (swap_buf [row].t, prev_swap_buf [row].t, sizeof (text_t) * common_col); memcpy (swap_buf [row].r, prev_swap_buf [row].r, sizeof (rend_t) * common_col); + swap_buf [row].l = min (prev_swap_buf [row].l, ncol); + swap_buf [row].f = prev_swap_buf [row].f; } int p = MOD (term_start + prev_nrow, prev_total_rows); // previous row @@ -392,6 +395,7 @@ memcpy (dst.t, src.t, sizeof (text_t) * common_col); memcpy (dst.r, src.r, sizeof (rend_t) * common_col); + dst.l = common_col; } for (int row = prev_nrow; row < nrow; row++) @@ -1708,7 +1712,7 @@ rvideo_state = on; ::swap (pix_colors[Color_fg], pix_colors[Color_bg]); -#ifdef HAVE_BG_PIXMAP +#ifdef HAVE_IMG if (bg_img == 0) #endif XSetWindowBackground (dpy, vt, pix_colors[Color_bg]); @@ -2053,7 +2057,7 @@ unsigned int old_screen_flags = screen.flags; bool have_bg = 0; -#ifdef HAVE_BG_PIXMAP +#ifdef HAVE_IMG have_bg = bg_img != 0; #endif ocrow = oldcursor.row; /* is there an old outline cursor on screen? */ @@ -2534,7 +2538,7 @@ { bool transparent = false; -#ifdef HAVE_BG_PIXMAP +#ifdef HAVE_IMG if (bg_img != 0) { # if ENABLE_TRANSPARENCY