From 54dacffbfc4ae341d2858c0f5edfb5e66574144b Mon Sep 17 00:00:00 2001 From: root Date: Tue, 4 Nov 2008 14:38:29 +0000 Subject: [PATCH] src/background.C --- src/background.C | 4 ++-- src/screen.C | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/background.C b/src/background.C index f2e389dd..753360e6 100644 --- a/src/background.C +++ b/src/background.C @@ -1139,11 +1139,11 @@ bgPixmap_t::render () XImage *result = NULL; # ifdef HAVE_AFTERIMAGE - target->init_asv (); - if (original_asim || (background_flags & transpTransformations) != (flags & transpTransformations)) { + target->init_asv (); + ASImage *background = NULL; ARGB32 as_tint = TINT_LEAVE_SAME; if (background_flags) diff --git a/src/screen.C b/src/screen.C index f51a5a3f..0e05a056 100644 --- a/src/screen.C +++ b/src/screen.C @@ -1466,11 +1466,18 @@ rxvt_term::scr_insdel_chars (int count, int insdel) NOTHROW line->touch (); line->is_longer (0); + // nuke wide char at beginning + if (line->t[screen.cur.col] == NOCHAR) + scr_kill_char (*line, screen.cur.col); + switch (insdel) { case INSERT: line->l = min (line->l + count, ncol); + if (line->t[screen.cur.col] == NOCHAR) + scr_kill_char (*line, screen.cur.col); + for (int col = ncol - 1; (col - count) >= screen.cur.col; col--) { line->t[col] = line->t[col - count]; @@ -1500,6 +1507,10 @@ rxvt_term::scr_insdel_chars (int count, int insdel) NOTHROW selection_check (1); screen.cur.col -= count; + // nuke wide char after the end + if (screen.cur.col + count < ncol && line->t[screen.cur.col + count] == NOCHAR) + scr_kill_char (*line, screen.cur.col + count); + scr_blank_line (*line, screen.cur.col, count, rstyle); break; -- 2.34.1