mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-16 10:53:31 +00:00
6644301: lightweight components can repaint outside request bounds
Repaint() needs to adjust width and height if it receives negative x or y. Reviewed-by: art
This commit is contained in:
parent
55c1fa19a4
commit
69a10f680a
@ -3052,10 +3052,24 @@ public abstract class Component implements ImageObserver, MenuContainer,
|
||||
// services. Additionally, the request is restricted to
|
||||
// the bounds of the component.
|
||||
if (parent != null) {
|
||||
int px = this.x + ((x < 0) ? 0 : x);
|
||||
int py = this.y + ((y < 0) ? 0 : y);
|
||||
if (x < 0) {
|
||||
width += x;
|
||||
x = 0;
|
||||
}
|
||||
if (y < 0) {
|
||||
height += y;
|
||||
y = 0;
|
||||
}
|
||||
|
||||
int pwidth = (width > this.width) ? this.width : width;
|
||||
int pheight = (height > this.height) ? this.height : height;
|
||||
|
||||
if (pwidth <= 0 || pheight <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
int px = this.x + x;
|
||||
int py = this.y + y;
|
||||
parent.repaint(tm, px, py, pwidth, pheight);
|
||||
}
|
||||
} else {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user