Tracker: Rework BFilePanel compatibility code.
Instead of adding "dummy views", leave the original views intact and just add a resizing hack to take care of any movements that apps have inflicted. Fixes #16411, a crash in WonderBrush, and compatibility issues in some other applications.
This commit is contained in:
@@ -116,6 +116,16 @@ BFilePanel::Show()
|
|||||||
fWindow->Show();
|
fWindow->Show();
|
||||||
|
|
||||||
fWindow->Activate();
|
fWindow->Activate();
|
||||||
|
|
||||||
|
#if 1
|
||||||
|
// The Be Book gives the names for some of the child views so that apps
|
||||||
|
// could move them around if they needed to, but we have most in layouts,
|
||||||
|
// so once the window has been opened, we have to forcibly resize "PoseView"
|
||||||
|
// (fBackView) to fully invalidate its layout in case any of the controls
|
||||||
|
// in it have been moved.
|
||||||
|
fWindow->FindView("PoseView")->ResizeBy(1, 1);
|
||||||
|
fWindow->FindView("PoseView")->ResizeBy(-1, -1);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -909,24 +909,6 @@ TFilePanel::RestoreState()
|
|||||||
|
|
||||||
// Finish UI creation now that the PoseView is initialized
|
// Finish UI creation now that the PoseView is initialized
|
||||||
InitLayout();
|
InitLayout();
|
||||||
|
|
||||||
#if 1
|
|
||||||
// The Be Book gives the names for some of these views so that apps could
|
|
||||||
// move them around if they needed to, but we have them here in layouts,
|
|
||||||
// so we need to change their names and add dummy views for compatibility.
|
|
||||||
// (The same is done for the PoseView above.)
|
|
||||||
fPoseView->TitleView()->SetName("ActualTitleView");
|
|
||||||
fPoseView->CountView()->SetName("ActualCountView");
|
|
||||||
fPoseView->HScrollBar()->SetName("ActualHScrollBar");
|
|
||||||
fPoseView->VScrollBar()->SetName("ActualVScrollBar");
|
|
||||||
|
|
||||||
const char* views[] = {"TitleView", "HScrollBar", "VScrollBar", "CountVw", NULL};
|
|
||||||
for (int i = 0; views[i] != NULL; i++) {
|
|
||||||
BView* dummy = new BView(BRect(), views[i], B_FOLLOW_NONE, 0);
|
|
||||||
fBackView->AddChild(dummy);
|
|
||||||
dummy->Hide();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user