--- rxvt-unicode/src/main.C 2007/12/24 06:51:37 1.291 +++ rxvt-unicode/src/main.C 2008/01/04 19:12:23 1.294 @@ -278,11 +278,6 @@ clear (); } - delete [] pix_colors_focused; -#if OFF_FOCUS_FADING - delete [] pix_colors_unfocused; -#endif - #ifdef HAVE_BG_PIXMAP bgPixmap.destroy (); #endif @@ -1698,10 +1693,9 @@ 0L, 1L, False, XA_PIXMAP, &atype, &aformat, &nitems, &bytes_after, &prop); if (result == Success && prop && atype == XA_PIXMAP) - { - return *(Pixmap *)prop; - } + return *(Pixmap *)prop; } + return None; } @@ -1719,34 +1713,30 @@ void rxvt_term::update_background () { + if (update_background_ev.is_active ()) + return; + bgPixmap.invalidate (); - /* no chance of real time refresh if we are blurring! */ - if (bgPixmap.invalid_since + 0.50 < ev::now () - && !(bgPixmap.flags & bgPixmap_t::blurNeeded)) - { - update_background_ev.stop (); - bgPixmap.render (); - } - else - { - ev_tstamp refresh; + ev_tstamp refresh; - if (!bgPixmap.need_client_side_rendering ()) - refresh = .05; - else if (bgPixmap.flags & bgPixmap_t::blurNeeded) - refresh = .20; /* very slow !!! */ - else - refresh = .07; + if (!bgPixmap.need_client_side_rendering ()) + refresh = .05; + else if (bgPixmap.flags & bgPixmap_t::blurNeeded) + /* no chance of real time refresh if we are blurring! */ + refresh = .50; + else + refresh = .07; - update_background_ev.start (refresh); - } + update_background_ev.start (refresh); } void rxvt_term::update_background_cb (ev::timer &w, int revents) { make_current (); + + update_background_ev.stop (); bgPixmap.render (); refresh_check (); }