Optimization: Widget's BackgroundImageUri, BackgroundImageDestRect, and BackgroundImageSrcRect don't do anything if set to the current value.
BUGFIX: Widget setDirty method shouldn't have done anything if set to existing dirty region, but probably was.