Made BPrintJob layout aware: while drawing recursively, we can't anymore
assume that all children B_WILL_DRAW. Also call Draw() only when the view said it will. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40439 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
46f8ab6c60
commit
9fd5bdcbd4
|
@ -527,16 +527,18 @@ BPrintJob::_RecurseView(BView* view, BPoint origin, BPicture* picture,
|
|||
view->SetHighColor(highColor);
|
||||
}
|
||||
|
||||
view->fIsPrinting = true;
|
||||
view->Draw(rect);
|
||||
view->fIsPrinting = false;
|
||||
if ((view->Flags() & B_WILL_DRAW) != 0) {
|
||||
view->fIsPrinting = true;
|
||||
view->Draw(rect);
|
||||
view->fIsPrinting = false;
|
||||
}
|
||||
|
||||
view->PopState();
|
||||
view->EndPicture();
|
||||
|
||||
BView* child = view->ChildAt(0);
|
||||
while (child != NULL) {
|
||||
if ((child->Flags() & B_WILL_DRAW) && !child->IsHidden()) {
|
||||
if (!child->IsHidden()) {
|
||||
BPoint leftTop(view->Bounds().LeftTop() + child->Frame().LeftTop());
|
||||
BRect printRect(rect.OffsetToCopy(rect.LeftTop() - leftTop)
|
||||
& child->Bounds());
|
||||
|
|
Loading…
Reference in New Issue