Skip to content

Commit

Permalink
Keep progress bar window centred after resize (OpenRCT2#22354)
Browse files Browse the repository at this point in the history
  • Loading branch information
AaronVanGeffen authored Jul 23, 2024
1 parent 2da5ed6 commit 4cef384
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
1 change: 1 addition & 0 deletions distribution/changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
- Fix: [#22304] Graphs don't draw lines on the left edge of the screen.
- Fix: [#22318] Water sparkles are missing if transparent water is enabled without RCT1 linked.
- Fix: [#22333] Tile inspector closes other tool windows.
- Fix: [#22348] Progress bar screen doesn't handle window resizing.

0.4.12 (2024-07-07)
------------------------------------------------------------------------
Expand Down
8 changes: 8 additions & 0 deletions src/openrct2/interface/Window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1427,6 +1427,14 @@ void WindowResizeGui(int32_t width, int32_t height)
optionsWindow->windowPos.y = (ContextGetHeight() - optionsWindow->height) / 2;
}

// Keep progress bar window centred after a resize
WindowBase* ProgressWindow = WindowFindByClass(WindowClass::ProgressWindow);
if (ProgressWindow != nullptr)
{
ProgressWindow->windowPos.x = (ContextGetWidth() - ProgressWindow->width) / 2;
ProgressWindow->windowPos.y = (ContextGetHeight() - ProgressWindow->height) / 2;
}

GfxInvalidateScreen();
}

Expand Down
10 changes: 5 additions & 5 deletions src/openrct2/scenes/preloader/PreloaderScene.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,6 @@ void PreloaderScene::Load()
WindowSetFlagForAllViewports(VIEWPORT_FLAG_RENDERING_INHIBITED, true);
WindowResizeGui(ContextGetWidth(), ContextGetHeight());

// Reset screen
auto* engine = GetContext().GetDrawingEngine();
auto* drawingContext = engine->GetDrawingContext();
drawingContext->Clear(*engine->GetDrawingPixelInfo(), PALETTE_INDEX_10);

LOG_VERBOSE("PreloaderScene::Load() finished");
}

Expand All @@ -59,6 +54,11 @@ void PreloaderScene::Tick()
ContextHandleInput();
WindowInvalidateAll();

// Reset screen
auto* engine = GetContext().GetDrawingEngine();
auto* drawingContext = engine->GetDrawingContext();
drawingContext->Clear(*engine->GetDrawingPixelInfo(), PALETTE_INDEX_10);

gInUpdateCode = false;

if (_jobs.CountPending() == 0 && _jobs.CountProcessing() == 0)
Expand Down

0 comments on commit 4cef384

Please sign in to comment.