Improve visibility and update caching.

This commit is contained in:
James Grogan 2022-11-16 17:27:19 +00:00
parent 70891ce7b4
commit 722bda2801
8 changed files with 41 additions and 24 deletions

View file

@ -132,6 +132,11 @@ void Widget::setVisible(bool visible)
mVisibilityDirty = true;
}
mVisible = visible;
for (auto& child : mChildren)
{
child->setVisible(mVisible);
}
}
bool Widget::isDirty() const
@ -198,6 +203,7 @@ void Widget::updateChildLocations()
{
child->setBounds(mSize.mWidth, mSize.mHeight);
child->setLocation(mLocation);
child->setVisible(mVisible);
}
}
@ -259,7 +265,7 @@ bool Widget::onMouseEvent(const MouseEvent* event)
}
if(!inChild)
{
if(contains(event->GetClientLocation()))
if(mVisible && contains(event->GetClientLocation()))
{
onMyMouseEvent(event);
return true;