--- rxvt-unicode/src/command.C 2010/08/22 09:36:33 1.455 +++ rxvt-unicode/src/command.C 2010/11/18 17:28:12 1.458 @@ -977,8 +977,9 @@ flush_ev.stop (); #ifdef HAVE_BG_PIXMAP - if (bgPixmap.check_clearChanged ()) + if (bgPixmap.flags & bgPixmap_t::hasChanged) { + bgPixmap.flags &= ~bgPixmap_t::hasChanged; // scr_clear (true); This needs to be researched further! scr_touch (false); } @@ -1432,9 +1433,6 @@ break; case ConfigureNotify: - /*fprintf (stderr, "ConfigureNotify for %X, parent is %X, geom is %dx%d%+d%+d, old geom was %dx%d\n", - ev.xconfigure.window, parent[0], ev.xconfigure.width, ev.xconfigure.height, ev.xconfigure.x, ev.xconfigure.y, - szHint.width, szHint.height);*/ if (ev.xconfigure.window == parent[0]) { while (XCheckTypedWindowEvent (dpy, ev.xconfigure.window, ConfigureNotify, &ev)) @@ -3452,21 +3450,19 @@ if (*str != ';') { - /* reset to default scaling :*/ - bgPixmap.unset_geometry (); if (bgPixmap.set_file (str)) /* change pixmap */ changed++; str = strchr (str, ';'); if (str == NULL) bgPixmap.set_defaultGeometry (); + else + bgPixmap.set_geometry (str+1); } - - while (str) + else { str++; - if (bgPixmap.set_geometry (str)) + if (bgPixmap.set_geometry (str, true)) changed++; - str = strchr (str, ';'); } if (changed)