Fix restoring of stacked windows.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39535 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Clemens Zeidler
2010-11-20 07:07:32 +00:00
parent 9ff327dea3
commit 2aa6775158
@@ -854,20 +854,21 @@ SATGroup::RestoreGroup(const BMessage& archive, StackAndTile* sat)
// adding windows to area // adding windows to area
uint64 windowId; uint64 windowId;
WindowArea* area = NULL; SATWindow* prevWindow = NULL;
for (int32 i = 0; areaArchive.FindInt64("window", i, for (int32 i = 0; areaArchive.FindInt64("window", i,
(int64*)&windowId) == B_OK; i++) { (int64*)&windowId) == B_OK; i++) {
SATWindow* window = sat->FindSATWindow(windowId); SATWindow* window = sat->FindSATWindow(windowId);
if (!window) if (!window)
continue; continue;
if (area == NULL) { if (prevWindow == NULL) {
if (!group->AddWindow(window, left, top, right, bottom)) if (!group->AddWindow(window, left, top, right, bottom))
return B_ERROR; continue;
area = window->GetWindowArea(); prevWindow = window;
} else { } else {
if (!group->AddWindow(window, area)) if (!prevWindow->StackWindow(window))
return B_ERROR; continue;
prevWindow = window;
} }
} }
} }