setNeedsDisplay works plus no dirty rect