+ do {
+ if (texture == null && (text == null || text.equals(""))) {
+ if ((fillcolor & 0xff000000) == 0) break;
+ // FEATURE: more optimizations here
+ if (this.x == x && this.y == y) {
+ Box who = (parent == null ? this : parent);
+ who.dirty(min(this.x+this.width,x+width), y, Math.abs(width-this.width), max(this.height, height));
+ who.dirty(x, min(this.y+this.height,y+height), max(this.width, width), Math.abs(height-this.height));
+ break;
+ }
+ }
+ (parent == null ? this : parent).dirty(this.x, this.y, this.width, this.height);
+ this.width = width; this.height = height; this.x = x; this.y = y;
+ dirty();
+ } while (false);