boolean GraphicMaster::manipulating (const Event& e, Tool& tool) { boolean flag = true; long count = _gr_list->count(); Coord l, b, r, t; Window* w = e.window(); Canvas* c = w->canvas(); for (long i = 0; i < count && flag; i++) { Graphic* target = _gr_list->item(i); target->getbounds(l, b, r, t); c->damage(l, b, r, t); flag = target->manipulating(e, tool); if (flag) { target->getbounds(l, b, r, t); c->damage(l, b, r, t); } CanvasRep& rep = *c->rep(); CanvasDamage& cd = rep.damage_; rep.start_repair(); drawclipped(c, cd.left, cd.bottom, cd.right, cd.top); rep.finish_repair(); w->display()->flush(); } return flag; }