mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-16 05:13:58 -07: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:
parent
1db11c0df4
commit
ade830b30c
1 changed files with 3 additions and 0 deletions
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in a new issue