The lean application framework for Python. Build sophisticated user interfaces with a simple Python API. Run your apps in the terminal and a web browser.
Having implemented this, it doesn't appear to make any noticeable difference.
I suspect that the for us there is no real benefit in the resize events being in-band. Previously we were handling signals and then posting events, which serialized everything anyway.
The Resize event does report the pixel size of the terminal with this protocol, which may be useful in the future when we add image support.
This also disable line-wrapping on terminals that support it. Currently only Ghostty as far as I can see. The benefit is that resizing the terminal doesn't cause the last line to wrap and scroll up. Further reducing resize jankiness.
Fixes https://github.com/Textualize/textual/issues/5205
Having implemented this, it doesn't appear to make any noticeable difference.
I suspect that the for us there is no real benefit in the resize events being in-band. Previously we were handling signals and then posting events, which serialized everything anyway.
The Resize event does report the pixel size of the terminal with this protocol, which may be useful in the future when we add image support.
This also disable line-wrapping on terminals that support it. Currently only Ghostty as far as I can see. The benefit is that resizing the terminal doesn't cause the last line to wrap and scroll up. Further reducing resize jankiness.
https://github.com/user-attachments/assets/d23bd07c-f263-46cc-8c85-af5f5979cf78