The following code adds a line to mark the panel as dirty and recompute the layout. Does this work the way you would expect?
Code:
import viz, vizinfo, vizact
viz.go()
ip = vizinfo.InfoPanel('', icon=False, align=viz.ALIGN_CENTER)
text = ip.addItem(viz.addText('hi'), fontSize=18, align=viz.ALIGN_CENTER_CENTER)
panel = ip.getPanel()
def setMessage():
text.message('this is a looooooooong line')
panel.dirtyLayout()
vizact.onkeydown(' ', setMessage)