Corrects invalidation of width

The width is not recalculated when `invalidate('width')` is set.
Merge pull request #222 from witrin/#207

Corrects invalidation of width