diff --git a/src/kits/interface/View.cpp b/src/kits/interface/View.cpp index 021406aee2..c0c3b0051d 100644 --- a/src/kits/interface/View.cpp +++ b/src/kits/interface/View.cpp @@ -4200,7 +4200,17 @@ BView::_UpdateStateForRemove() return; fState->UpdateFrom(*fOwner->fLink); - fBounds = Bounds(); + if (!fState->IsValid(B_VIEW_FRAME_BIT)) { + fOwner->fLink->StartMessage(AS_LAYER_GET_COORD); + + status_t code; + if (fOwner->fLink->FlushWithReply(code) == B_OK + && code == B_OK) { + fOwner->fLink->Read(const_cast(&fParentOffset)); + fOwner->fLink->Read(const_cast(&fBounds)); + fState->valid_flags |= B_VIEW_FRAME_BIT; + } + } // update children as well