1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +00:00
putty-source/windows
Simon Tatham 6163710f04 Fix accidental dependence on Windows API quirk in config box.
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.
2015-06-18 07:12:17 +01:00
..
pageant.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
pageant.mft Change manifest files to declare Windows GUI apps to be "DPI-aware", that is, 2009-09-25 23:32:14 +00:00
pageant.rc Merge branch 'pre-0.64' 2015-01-05 23:49:25 +00:00
pageants.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
plink.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
pscp.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
pscp.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
psftp.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
putty.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
putty.iss Bump version number for 0.64 release. 2015-02-28 07:57:35 +00:00
putty.mft Change manifest files to declare Windows GUI apps to be "DPI-aware", that is, 2009-09-25 23:32:14 +00:00
putty.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
puttycfg.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
puttygen.ico Tweak the icon script, and the generated icons, to more closely 2007-01-07 10:17:12 +00:00
puttygen.mft Change manifest files to declare Windows GUI apps to be "DPI-aware", that is, 2009-09-25 23:32:14 +00:00
puttygen.rc Merge branch 'pre-0.64' 2015-01-05 23:49:25 +00:00
puttyins.ico `installer.ico' doesn't fit into 8.3, so gets truncated to INSTALLE.ICO in 2007-02-06 22:39:15 +00:00
puttytel.rc `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
rcstuff.h `win-versioninfo': all builds of all Windows binaries now contain 2005-10-04 14:13:28 +00:00
README.txt Refresh the Windows installer README.txt. 2015-02-27 09:26:47 +00:00
sizetip.c Sprinkle some header comments in various files in an attempt to explain what 2006-04-23 18:26:03 +00:00
version.rc2 It's a new year. 2015-01-05 23:48:11 +00:00
website.url Now that we have Subversion's file renaming ability, it's time at 2004-11-16 22:14:56 +00:00
win_res.h Sprinkle some header comments in various files in an attempt to explain what 2006-04-23 18:26:03 +00:00
win_res.rc2 Merge branch 'pre-0.64' 2015-01-05 23:49:25 +00:00
wincfg.c Post-release destabilisation! Completely remove the struct type 2011-07-14 18:52:21 +00:00
wincons.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winctrls.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
windefs.c Turn 'Filename' into a dynamically allocated type with no arbitrary 2011-10-02 11:01:57 +00:00
windlg.c Fix accidental dependence on Windows API quirk in config box. 2015-06-18 07:12:17 +01:00
window.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
wingss.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winhandl.c Fix a dangerous cross-thread memory access. 2015-04-07 22:17:08 +01:00
winhelp.c Quell a (correct) GCC warning in the NO_HTMLHELP case. 2012-09-17 22:28:07 +00:00
winhelp.h Support RFC 4419. 2015-04-25 10:54:18 +01:00
winhsock.c Log the client process ID for Windows named pipes too. 2015-05-18 16:00:13 +01:00
winjump.c Replace the type-checking COMPTR macro with my current idea of best 2013-07-22 07:12:15 +00:00
winmisc.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winnet.c Log identifying information for the other end of connections. 2015-05-18 14:03:10 +01:00
winnoise.c Been meaning to get round to this for a while: use CryptGenRandom to 2013-07-20 08:34:54 +00:00
winnojmp.c Fix up svn:eol-style and svn:keywords on new files. 2010-12-27 00:24:48 +00:00
winnpc.c Implement connection sharing between instances of PuTTY. 2013-11-17 14:05:41 +00:00
winnps.c Log identifying information for the other end of connections. 2015-05-18 14:03:10 +01:00
winpgen.c Windows PuTTYgen: fix mis-setting of radio buttons. 2015-05-15 13:01:33 +01:00
winpgnt.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winpgntc.c Move the dynamic loading of advapi into its own module. 2013-11-17 14:05:29 +00:00
winplink.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winprint.c Another big batch of memory leak fixes, again mostly on error paths. 2013-07-22 07:11:54 +00:00
winproxy.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winsecur.c Explicitly set the owning SID in make_private_security_descriptor. 2014-05-13 19:19:28 +00:00
winsecur.h Switch to using SIDs in make_private_security_descriptor(). 2013-11-25 18:35:14 +00:00
winser.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winsftp.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winshare.c Fix assorted memory leaks. 2014-11-22 15:26:13 +00:00
winstore.c Add have_ssh_host_key() and use it to influence algorithm selection. 2015-05-30 01:01:36 +01:00
winstuff.h Move the dynamic loading of advapi into its own module. 2013-11-17 14:05:29 +00:00
wintime.c Sprinkle some header comments in various files in an attempt to explain what 2006-04-23 18:26:03 +00:00
winucs.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winutils.c Giant const-correctness patch of doom! 2015-05-15 12:47:44 +01:00
winx11.c Post-release destabilisation! Completely remove the struct type 2011-07-14 18:52:21 +00:00

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'.