Skip to content

Commit d354f9f

Browse files
Fix bypassed virtual dispatch when restoring state
Don't call unqualified (i.e., derived) Resize() function from constructor.
1 parent 47fa043 commit d354f9f

1 file changed

Lines changed: 8 additions & 7 deletions

File tree

libs/s25main/ingameWindows/IngameWindow.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,19 @@ IngameWindow::IngameWindow(unsigned id, const DrawPoint& pos, const Extent& size
5050
// Save to settings that window is open
5151
SaveOpenStatus(true);
5252

53-
// Load lastPos before it is overwritten when restoring minimized state
54-
const auto lastPos = (windowSettings_ ? windowSettings_->lastPos : DrawPoint::Invalid());
55-
5653
// Restore minimized state
5754
if(windowSettings_ && windowSettings_->isMinimized)
58-
SetMinimized();
55+
{
56+
isMinimized_ = true;
57+
Extent minimizedSize(GetSize().x, contentOffset.y + contentOffsetEnd.y);
58+
Window::Resize(minimizedSize);
59+
}
5960

60-
// Restore last position or center the window
61+
// Load last position or center the window
6162
if(pos == posLastOrCenter)
6263
{
63-
if(lastPos.isValid())
64-
SetPos(lastPos);
64+
if(windowSettings_ && windowSettings_->lastPos.isValid())
65+
SetPos(windowSettings_->lastPos);
6566
else
6667
MoveToCenter();
6768
} else if(pos == posCenter)

0 commit comments

Comments
 (0)