mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-04-12 08:38:06 -05:00

Previously, the Windows implementation of win_request_resize would call term_size() to tell the terminal about its new size, _before_ calling SetWindowPos to actually change the window size. If SetWindowPos ends up not getting the exact window size it asks for, Windows notifies the application by sending back a WM_SIZE message - synchronously, by calling back to the window procedure from within SetWindowPos. So after the first over-optimistic term_size(), the WM_SIZE handler would trigger a second one, resetting the terminal again to the _actual_ size. This was more or less harmless, since current handling of terminal resizes is such that no terminal data gets too confused: any lines pushed into the scrollback by the first term_size will be pulled back out by the second one if needed (or vice versa), and since commit 271de3e4ec5682e, individual termlines are not eagerly truncated by resizing them twice. However, it's more work than we really wanted to be doing, and it seems presumptuous to send term_size() before we know it's right! So now we send term_size() after SetWindowPos returns, unless it already got sent by a re-entrant call to the WM_SIZE handler _before_ SetWindowPos returned. That way, the terminal should get exactly one term_size() call in response to win_request_resize(), whether it got the size it was expecting or not.
This is the README for PuTTY, a free Windows and Unix Telnet and SSH client. PuTTY is built using CMake <https://cmake.org/>. To compile in the simplest way (on any of Linux, Windows or Mac), run these commands in the source directory: cmake . cmake --build . Documentation (in various formats including Windows Help and Unix `man' pages) is built from the Halibut (`.but') files in the `doc' subdirectory using `doc/Makefile'. If you aren't using one of our source snapshots, you'll need to do this yourself. Halibut can be found at <https://www.chiark.greenend.org.uk/~sgtatham/halibut/>. The PuTTY home web site is https://www.chiark.greenend.org.uk/~sgtatham/putty/ If you want to send bug reports or feature requests, please read the Feedback section of the web site before doing so. Sending one-line reports saying `it doesn't work' will waste your time as much as ours. See the file LICENCE for the licence conditions.
Description
Languages
C
89.7%
Python
8%
Perl
0.9%
CMake
0.8%
Shell
0.4%
Other
0.1%