mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 09:58:01 +00:00
6163710f04
Our config boxes are constructed using the CreateDialog() API function, rather than the modal DialogBox(). CreateDialog() is not that different from CreateWindow(), so windows created with it don't appear on the screen automatically; MSDN says that they must be shown via ShowWindow(), just like non-dialog windows have to be. But we weren't doing that at any point! So how was our config box ever getting displayed at all? Apparently by sheer chance, it turns out. The handler for a selection change in the tree view, which has to delete a whole panel of controls and creates a different set, surrounds that procedure with some WM_SETREDRAW calls and an InvalidateRect(), to prevent flicker while lots of changes were being made. And the creation of the _first_ panelful of controls, at dialog box setup, was done by simply selecting an item in the treeview and expecting that handler to be recursively called. And it appears that calling WM_SETREDRAW(TRUE) and then InvalidateRect was undocumentedly having an effect equivalent to the ShowWindow() we should have called, so that we never noticed the latter was missing. But a recent Vista update (all reports implicate KB3057839) has caused that not to work any more: on an updated Vista machine, in some desktop configurations, it seems that any attempt to fiddle with WM_SETREDRAW during dialog setup can leave the dialog box in a really unhelpful invisible state - the window is _physically there_ (you can see its taskbar entry, and the mouse pointer changes as you move over where its edit boxes are), but 100% transparent. So now we're doing something a bit more sensible. The first panelful of controls is created directly by the WM_INITDIALOG handler, rather than recursing into code that wasn't really designed to run at setup time. To be on the safe side, that handler for treeview selection change is also disabled until the WM_INITDIALOG handler has finished (like we already did with the WM_COMMAND handler), so that we can be sure of not accidentally messing about with WM_SETREDRAW at all during setup. And at the end of setup, we show the window in the sensible way, by a docs-approved call to ShowWindow(). This appears (on the one machine I've so far tested it on) to fix the Vista invisible-window issue, and also it should be more API-compliant and hence safer in future. |
||
---|---|---|
.. | ||
pageant.ico | ||
pageant.mft | ||
pageant.rc | ||
pageants.ico | ||
plink.rc | ||
pscp.ico | ||
pscp.rc | ||
psftp.rc | ||
putty.ico | ||
putty.iss | ||
putty.mft | ||
putty.rc | ||
puttycfg.ico | ||
puttygen.ico | ||
puttygen.mft | ||
puttygen.rc | ||
puttyins.ico | ||
puttytel.rc | ||
rcstuff.h | ||
README.txt | ||
sizetip.c | ||
version.rc2 | ||
website.url | ||
win_res.h | ||
win_res.rc2 | ||
wincfg.c | ||
wincons.c | ||
winctrls.c | ||
windefs.c | ||
windlg.c | ||
window.c | ||
wingss.c | ||
winhandl.c | ||
winhelp.c | ||
winhelp.h | ||
winhsock.c | ||
winjump.c | ||
winmisc.c | ||
winnet.c | ||
winnoise.c | ||
winnojmp.c | ||
winnpc.c | ||
winnps.c | ||
winpgen.c | ||
winpgnt.c | ||
winpgntc.c | ||
winplink.c | ||
winprint.c | ||
winproxy.c | ||
winsecur.c | ||
winsecur.h | ||
winser.c | ||
winsftp.c | ||
winshare.c | ||
winstore.c | ||
winstuff.h | ||
wintime.c | ||
winucs.c | ||
winutils.c | ||
winx11.c |
PuTTY README ============ This is the README file for the PuTTY installer distribution. If you're reading this, you've probably just run our installer and installed PuTTY on your system. What should I do next? ---------------------- If you want to use PuTTY to connect to other computers, or use PSFTP to transfer files, you should just be able to run them from the Start menu. If you want to use the command-line-only file transfer utility PSCP, you will probably want to put the PuTTY installation directory on your PATH. On Windows 7 and similar versions, you can do this at Control Panel > System and Security > System > Advanced system settings > Environment Variables. Some versions of Windows will refuse to run HTML Help files (.CHM) if they are installed on a network drive. If you have installed PuTTY on a network drive, you might want to check that the help file works properly. If not, see http://support.microsoft.com/kb/896054 for information on how to solve this problem. What do I do if it doesn't work? -------------------------------- The PuTTY home web site is http://www.chiark.greenend.org.uk/~sgtatham/putty/ Here you will find our list of known bugs and pending feature requests. If your problem is not listed in there, or in the FAQ, or in the manuals, read the Feedback page to find out how to report bugs to us. PLEASE read the Feedback page carefully: it is there to save you time as well as us. Do not send us one-line bug reports telling us `it doesn't work'.