mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-05-09 21:52:10 -05:00

In 687efc3a5da1fb85c86a3c871b00a7234b97c2e9, Simon noted that when PuTTY was running under X and using an RGB24 image surface as its backing surface, it would fail to draw on its window. Changing the backing image to ARGB32 caused the problem to go away. If you set GDK_BACKEND=x11 and GDK_RENDERING=image, then PuTTY's gdk_window_create_similar_surface() returns an RGB24 image surface, and it appears to have precisely the same problem. Dumping the surfaces to PNG files revealed that Cairo thought they had the right context. But xtruss didn't show any actual requests to write to the window. So on a hunch approximately as well-informed as Simon's, I added a call to cairo_flush(), to explicitly ask Cairo to flush its changes to the underlying surface. I would have hoped that GTK would do something like this for us, but adding that call seems to have made things work properly. Like Simon, I have no idea if this is the correct fix, but it seems like a reasonable one and the problem is no longer occurring for me.
…
…
…
…
…
…
…
…
…
…
…
PuTTY source code README ======================== This is the README for the source code of 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), the general method is to run these commands in the source directory: cmake . cmake --build . These commands will expect to find a usable compile toolchain on your path. So if you're building on Windows with MSVC, you'll need to make sure that the MSVC compiler (cl.exe) is on your path, by running one of the 'vcvars32.bat' setup scripts provided with the tools. Then the cmake commands above should work. To install in the simplest way on Linux or Mac: cmake --build . --target install On Unix, pterm would like to be setuid or setgid, as appropriate, to permit it to write records of user logins to /var/run/utmp and /var/log/wtmp. (Of course it will not use this privilege for anything else, and in particular it will drop all privileges before starting up complex subsystems like GTK.) The cmake install step doesn't attempt to add these privileges, so if you want user login recording to work, you should manually ch{own,grp} and chmod the pterm binary yourself after installation. If you don't do this, pterm will still work, but not update the user login databases. Documentation (in various formats including Windows Help and Unix `man' pages) is built from the Halibut (`.but') files in the `doc' subdirectory. 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%