On Tue, May 8, 2012 at 8:53 PM, Clemens <clemens.zeidler@xxxxxxxxxxxxxx> wrote: > On Wed, 09 May 2012 02:08:00 +1200, Alex Wilson <yourpalal2@xxxxxxxxx> > wrote: > >>> Ok I removed fInvalidationDisabled and BLayout:: >>> {Disable|Enable}LayoutInvalidation() from BLayout. Think BLayout is not >>> the place to decide if it triggers a relayout. This functionality is >>> only in BView now. However BLayout::InvalidateLayout checks if the >>> invalidation is disabled in BView. (please take a look at the >>> attachment) >> >> I don't think it's good to remove this functionality across the board, >> because in a complex layout, you might have many nested layouts, and >> maybe you wouldn't want changing some of the nested ones to invalidate >> your main layout. In the case of a layout with an fOwner (see next >> comment), it is probably reasonable to defer to the BView on >> invalidation disabledness. > > > Ah ok, the problem is that BView::DisableLayoutInvalidation() does not work > at the moment. It does not prevent the child layout to be directly > invalidated. So should BLayout::InvalidateLayout() also check if the layout > invalidation of the target view is invalidated? Think that would fix the > problem. I think that's a good solution :)