--- rxvt-unicode/src/screen.C 2007/08/13 07:18:58 1.273 +++ rxvt-unicode/src/screen.C 2007/10/15 14:56:06 1.280 @@ -32,7 +32,7 @@ #include "salloc.C" // HACK, should be a seperate compile! -inline void fill_text (text_t *start, text_t value, int len) +static inline void fill_text (text_t *start, text_t value, int len) { while (len--) *start++ = value; @@ -407,7 +407,7 @@ prev_nrow = nrow; prev_ncol = ncol; - tabs = (char *)rxvt_malloc (ncol * sizeof (char)); + tabs = (char *)rxvt_malloc (ncol); for (int col = ncol; --col; ) tabs [col] = col % TABSIZE == 0; @@ -1623,7 +1623,7 @@ rxvt_term::scr_set_tab (int mode) NOTHROW { if (mode < 0) - memset (tabs, 0, ncol * sizeof (char)); + memset (tabs, 0, ncol); else if (screen.cur.col < ncol) tabs [screen.cur.col] = !!mode; } @@ -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); @@ -1890,16 +1887,14 @@ # endif XMapWindow (dpy, parent[0]); # endif + # if ENABLE_FRILLS if (option (Opt_urgentOnBell)) { - XWMHints *h; - - h = XGetWMHints(dpy, parent[0]); - if (h != NULL) + if (XWMHints *h = XGetWMHints(dpy, parent[0])) { h->flags |= XUrgencyHint; - XSetWMHints(dpy, parent[0], h); + XSetWMHints (dpy, parent[0], h); } } # endif @@ -2007,9 +2002,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,31 +2472,25 @@ 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); - } -#endif - } - + 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 scr_clear (); scr_touch (true); want_refresh = 1; +#endif + } /* ------------------------------------------------------------------------- */ @@ -3678,18 +3664,6 @@ * MOUSE ROUTINES * * ------------------------------------------------------------------------- */ -/* - * return col/row values corresponding to x/y pixel values - */ -void -rxvt_term::pixel_position (int *x, int *y) NOTHROW -{ - *x = Pixel2Col (*x); - /* max_it (*x, 0); min_it (*x, (int)ncol - 1); */ - *y = Pixel2Row (*y); - /* max_it (*y, 0); min_it (*y, (int)nrow - 1); */ -} - /* ------------------------------------------------------------------------- */ #ifdef USE_XIM void