fixed interdependency between shape() and boundingRect(), reverted full viewport update mode