--- rxvt-unicode/src/screen.C 2007/12/14 05:25:26 1.289 +++ rxvt-unicode/src/screen.C 2008/01/20 14:12:39 1.298 @@ -1013,23 +1013,20 @@ void rxvt_term::scr_backspace () NOTHROW { - want_refresh = 1; - if (screen.cur.col == 0) { if (screen.cur.row > 0) { #ifdef TERMCAP_HAS_BW screen.cur.col = ncol - 1; - screen.cur.row--; - return; + --screen.cur.row; + + want_refresh = 1; #endif } } - else if (!(screen.flags & Screen_WrapNext)) + else scr_gotorc (0, -1, RELATIVE); - - screen.flags &= ~Screen_WrapNext; } /* ------------------------------------------------------------------------- */ @@ -1874,6 +1871,7 @@ { rvideo_bell = false; scr_rvideo_mode (rvideo_mode); + refresh_check (); } #endif @@ -1905,7 +1903,7 @@ { rvideo_bell = true; scr_rvideo_mode (rvideo_mode); - display->flush (); + flush (); bell_ev.start (VISUAL_BELL_DURATION); } @@ -2265,8 +2263,7 @@ bool invert = rend & RS_RVid; #ifndef NO_BOLD_UNDERLINE_REVERSE - if (rend & RS_Bold - && fore == Color_fg) + if (rend & RS_Bold && fore == Color_fg) { if (ISSET_PIXCOLOR (Color_BD)) fore = Color_BD; @@ -2276,8 +2273,7 @@ # endif } - if (rend & RS_Italic - && fore == Color_fg) + if (rend & RS_Italic && fore == Color_fg) { if (ISSET_PIXCOLOR (Color_IT)) fore = Color_IT; @@ -2477,9 +2473,11 @@ #ifdef HAVE_BG_PIXMAP bgPixmap.apply (); #else + XSetWindowBackground (dpy, parent[0], pix_colors[Color_border]); XClearWindow (dpy, parent[0]); XSetWindowBackground (dpy, vt, pix_colors[Color_bg]); + # if HAVE_SCROLLBARS if (scrollBar.win) { @@ -2488,11 +2486,12 @@ scrollbar_show (0); } # endif + scr_clear (); scr_touch (true); want_refresh = 1; -#endif +#endif } /* ------------------------------------------------------------------------- */ @@ -2652,7 +2651,13 @@ if (data[i] == C0_LF) data[i] = C0_CR; + if (priv_modes & PrivMode_BracketPaste) + tt_printf ("\e[200~"); + tt_write (data, len); + + if (priv_modes & PrivMode_BracketPaste) + tt_printf ("\e[201~"); } /* ------------------------------------------------------------------------- */