mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-07-26 20:12:45 +00:00
Fix brief text misalignment in GUI text objects
The issue was introduced by 8a2a450686.
It affected GUI text objects (CText) with `scrollbar` set to true; when
their caption was long enough for a scrollbar to be visible and then the
size changed (got bigger) so that no scrollbar was needed anymore, then
for a single frame the text was completely misaligned. This happened
because in `CText::Draw` the scrollbar wasn't updated yet, so the newly
added `GetScrollBar(0).IsVisible()` check still returned true, even
though it wouldn't end up being rendered anyway -- it was updated in
`IGUITextOwner::DrawText` eventually.
This happened to the tutorial info panel in the starting economy
walkthrough, for example. Note: in that case the scrollbar wasn't ever
drawn, but it was temporarily set visible within a frame by the JS
object resizing logic.
This commit is contained in:
@@ -181,6 +181,9 @@ void CText::Draw(CCanvas2D& canvas)
|
||||
{
|
||||
m_pGUI.DrawSprite(m_Sprite, canvas, GetActualSize(), m_VisibleArea);
|
||||
|
||||
// Ensure the scrollbars are up-to-date.
|
||||
UpdateText();
|
||||
|
||||
float scroll = 0.f;
|
||||
if (m_ScrollBar)
|
||||
scroll = GetScrollBar(0).GetPos();
|
||||
|
||||
Reference in New Issue
Block a user