--- rxvt-unicode/src/screen.C 2012/06/28 15:19:15 1.422 +++ rxvt-unicode/src/screen.C 2013/01/13 20:11:21 1.429 @@ -227,6 +227,7 @@ screen.bscroll = nrow - 1; void *prev_chunk = chunk; + size_t prev_chunk_size = chunk_size; line_t *prev_drawn_buf = drawn_buf; line_t *prev_swap_buf = swap_buf; line_t *prev_row_buf = row_buf; @@ -281,8 +282,10 @@ 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 = prev_swap_buf [row].l; } int p = MOD (term_start + prev_nrow, prev_total_rows); // previous row @@ -391,6 +394,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++) @@ -410,7 +414,7 @@ if (!drawn_buf [row].valid ()) scr_blank_screen_mem (drawn_buf [row], DEFAULT_RSTYLE); } - free (prev_chunk); + chunk_free (prev_chunk, prev_chunk_size); free (tabs); tabs = (char *)rxvt_malloc (ncol); @@ -1707,7 +1711,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]); @@ -2052,7 +2056,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? */ @@ -2533,7 +2537,7 @@ { bool transparent = false; -#ifdef HAVE_BG_PIXMAP +#ifdef HAVE_IMG if (bg_img != 0) { # if ENABLE_TRANSPARENCY @@ -2565,7 +2569,7 @@ if (transparent) XSetWindowBackgroundPixmap (dpy, scrollBar.win, ParentRelative); else - XSetWindowBackground (dpy, scrollBar.win, pix_colors[Color_border]); + XSetWindowBackground (dpy, scrollBar.win, pix_colors[scrollBar.color ()]); scrollBar.state = SB_STATE_IDLE; scrollBar.show (0); }