mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 17:38:00 +00:00
16d5bb7269
The protocol selector widgets were misaligned in GTK as well as on Windows, but for a completely different reason. (I guess both bugs must have been introduced at the same time when I reworked the system to tolerate more than two aligned widgets in commit b5ab90143a2df7f.) To vertically align N widgets, you have to first figure out what range of y-coordinates they jointly occupy, and then centre each one within that range. We were trying to do both jobs in the same pass, which meant trying to place the first widget before finding out where the last one will be. To do this, we were separately computing the y-range's start and width, the former by taking max of the y-coordinates _seen so far_, and the latter by taking max of _all_ the widgets' heights. This has two problems. One is that if you later find out that the y-coordinate of the top of the range needs to be lower than you'd previously realised, it's too late to go back and reposition the widgets you've already placed. But that's a theoretical issue that would only come up with more complicated column layouts than we've actually used. (And probably more complicated than would even be _sensible_ to use.) The other, more immediate, problem: the y-coordinates we were using for already-placed widgets in the set were the ones _after_ we adjusted each one for vertical centring. So if the first widget is short and the second taller (say, heights 20 and 30 pixels), then the first widget will be offset downwards by 5 pixels, but the second widget will use that offset y-coordinate as the _top_ of the range to fit itself into, and hence, will also be 5 pixels downward from where it should have been. I think only the second of those problems is immediately concerning, but it's easier to fix both at once. I've removed the y-adjustment for vertical centring from the main layout loop, and put it in a separate pass run after the main layout finishes. |
||
---|---|---|
charset | ||
cmake | ||
contrib | ||
crypto | ||
doc | ||
icons | ||
keygen | ||
otherbackends | ||
proxy | ||
ssh | ||
stubs | ||
terminal | ||
test | ||
unix | ||
utils | ||
windows | ||
.gitignore | ||
aqsync.c | ||
be_list.c | ||
Buildscr | ||
Buildscr.cv | ||
callback.c | ||
cgtest.c | ||
CHECKLST.txt | ||
clicons.c | ||
CMakeLists.txt | ||
cmdgen.c | ||
cmdline.c | ||
config.c | ||
console.c | ||
console.h | ||
defs.h | ||
dialog.c | ||
dialog.h | ||
errsock.c | ||
import.c | ||
LATEST.VER | ||
ldisc.c | ||
LICENCE | ||
licence.pl | ||
logging.c | ||
marshal.h | ||
misc.h | ||
mksrcarc.sh | ||
mkunxarc.sh | ||
mpint.h | ||
network.h | ||
pageant.c | ||
pageant.h | ||
pinger.c | ||
pscp.c | ||
psftp.c | ||
psftp.h | ||
psftpcommon.c | ||
psocks.c | ||
psocks.h | ||
putty.h | ||
puttymem.h | ||
README | ||
release.pl | ||
settings.c | ||
sign.sh | ||
ssh.h | ||
sshcr.h | ||
sshkeygen.h | ||
sshpubk.c | ||
sshrand.c | ||
storage.h | ||
timing.c | ||
tree234.h | ||
version.h | ||
x11disp.c |
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 . Then, 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 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.