Fix child nodes still being drawn when the visible area of a control with clip_contents enabled is 0

This commit is contained in:
Rindbee 2022-12-01 11:04:04 +08:00
parent 0ff8742919
commit 7129718dc5

View file

@ -275,12 +275,12 @@ void RendererCanvasCull::_cull_canvas_item(Item *p_canvas_item, const Transform2
if (ci->clip) {
if (p_canvas_clip != nullptr) {
ci->final_clip_rect = p_canvas_clip->final_clip_rect.intersection(global_rect);
if (ci->final_clip_rect == Rect2()) {
// Clip rects do not intersect, so don't draw this item.
return;
}
} else {
ci->final_clip_rect = global_rect;
ci->final_clip_rect = p_clip_rect.intersection(global_rect);
}
if (ci->final_clip_rect.size.width < 0.5 || ci->final_clip_rect.size.height < 0.5) {
// The clip rect area is 0, so don't draw the item.
return;
}
ci->final_clip_rect.position = ci->final_clip_rect.position.round();
ci->final_clip_rect.size = ci->final_clip_rect.size.round();