mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-08-15 14:43:32 -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
6ed963b94c
commit
931c132b1b
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