--- rxvt-unicode/src/screen.C 2007/08/13 07:18:58 1.273 +++ rxvt-unicode/src/screen.C 2007/08/15 22:41:52 1.275 @@ -1651,9 +1651,6 @@ #ifdef HAVE_BG_PIXMAP if (bgPixmap.pixmap == None) #endif -#if ENABLE_TRANSPARENCY - if (!option (Opt_transparent) || am_transparent == 0) -#endif XSetWindowBackground (dpy, vt, pix_colors[Color_bg]); XGCValues gcvalue; @@ -1806,7 +1803,7 @@ min_it (rc[i].col, ncol - 1); min_it (rc[i].row, nrow - 1); } - +// TODO: this line somehow causes segfault if scr_expose() is called just after resize for (i = rc[PART_BEG].row; i <= rc[PART_END].row; i++) fill_text (&drawn_buf[i].t[rc[PART_BEG].col], 0, rc[PART_END].col - rc[PART_BEG].col + 1); @@ -2007,9 +2004,6 @@ #ifdef HAVE_BG_PIXMAP have_bg |= bgPixmap.pixmap != None; #endif -#if ENABLE_TRANSPARENCY - have_bg |= option (Opt_transparent) && am_transparent; -#endif ocrow = oldcursor.row; /* is there an old outline cursor on screen? */ /* @@ -2480,28 +2474,22 @@ void rxvt_term::scr_recolour () NOTHROW { - if (1 -#if ENABLE_TRANSPARENCY - && !am_transparent -#endif #ifdef HAVE_BG_PIXMAP - && !bgPixmap.pixmap -#endif - ) - { - 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) - { - XSetWindowBackground (dpy, scrollBar.win, pix_colors[Color_border]); - scrollBar.setIdle (); - scrollbar_show (0); - } + 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) + { + XSetWindowBackground (dpy, scrollBar.win, pix_colors[Color_border]); + scrollBar.setIdle (); + scrollbar_show (0); + } +# endif #endif - } - + scr_clear (); scr_touch (true); want_refresh = 1;