De-virtualize BView::InvalidateLayout() and introduce LayoutInvalidated() hook, like BLayout.

This commit is contained in:
Alex Wilson
2011-10-28 14:16:43 -06:00
parent b38ea98f52
commit eee4243d35
29 changed files with 138 additions and 131 deletions
+15 -7
View File
@@ -4481,11 +4481,11 @@ BView::Perform(perform_code code, void* _data)
BView::SetLayout(data->layout);
return B_OK;
}
case PERFORM_CODE_INVALIDATE_LAYOUT:
case PERFORM_CODE_LAYOUT_INVALIDATED:
{
perform_data_invalidate_layout* data
= (perform_data_invalidate_layout*)_data;
BView::InvalidateLayout(data->descendants);
perform_data_layout_invalidated* data
= (perform_data_layout_invalidated*)_data;
BView::LayoutInvalidated(data->descendants);
return B_OK;
}
case PERFORM_CODE_DO_LAYOUT:
@@ -4697,6 +4697,7 @@ BView::InvalidateLayout(bool descendants)
fLayoutData->fLayoutValid = false;
fLayoutData->fMinMaxValid = false;
LayoutInvalidated(descendants);
if (descendants) {
for (BView* child = fFirstChild;
@@ -4790,6 +4791,13 @@ BView::Relayout()
}
void
BView::LayoutInvalidated(bool descendants)
{
// hook method
}
void
BView::DoLayout()
{
@@ -5772,10 +5780,10 @@ _ReservedView8__5BView(BView* view, BLayout* layout)
extern "C" void
_ReservedView9__5BView(BView* view, bool descendants)
{
// InvalidateLayout()
perform_data_invalidate_layout data;
// LayoutInvalidated()
perform_data_layout_invalidated data;
data.descendants = descendants;
view->Perform(PERFORM_CODE_INVALIDATE_LAYOUT, &data);
view->Perform(PERFORM_CODE_LAYOUT_INVALIDATED, &data);
}