Skip to content

Commit

Permalink
Fix status bar not repainting properly on window maximise/restore/resize
Browse files Browse the repository at this point in the history
  • Loading branch information
codereader committed Oct 10, 2021
1 parent 5071607 commit aec2a77
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion radiant/ui/statusbar/StatusBarManager.cpp
Expand Up @@ -54,6 +54,19 @@ void StatusBarManager::initialiseModule(const IApplicationContext& ctx)

GlobalMainFrame().signal_MainFrameShuttingDown().connect(
sigc::mem_fun(this, &StatusBarManager::onMainFrameShuttingDown));

// Do a full re-paint when the mainframe is resized
GlobalMainFrame().signal_MainFrameReady().connect([this]()
{
GlobalMainFrame().getWxTopLevelWindow()->Bind(wxEVT_SIZE, [this](wxSizeEvent& ev)
{
ev.Skip();
if (_statusBar)
{
_statusBar->Refresh(true);
}
});
});
}

wxWindow* StatusBarManager::getStatusBar()
Expand Down Expand Up @@ -228,7 +241,7 @@ void StatusBarManager::rebuildStatusBar()

// A few default elements don't need to use 1 as proportion
auto proportion = i->first == StandardPosition::MapStatistics || i->first == StandardPosition::GridSize ||
i->first == StandardPosition::MapEditStopwatch ? 0 : 1;
i->first == StandardPosition::MapEditStopwatch || i->first == StandardPosition::OrthoViewPosition ? 0 : 1;

_statusBar->GetSizer()->Add(i->second->toplevel, proportion, flags, spacing);

Expand All @@ -242,6 +255,7 @@ void StatusBarManager::onMainFrameShuttingDown()
{
flushIdleCallback();

_statusBar = nullptr;
_tempParent->Destroy();
_tempParent = nullptr;
}
Expand Down

0 comments on commit aec2a77

Please sign in to comment.