Fixed the bug whereby PuTTYgen went into generation mode as soon as
[sgt/putty] / puttygen.c
index 42af397..d85f4cc 100644 (file)
 #include "ssh.h"
 #include "winstuff.h"
 
+#ifdef MSVC4
+#define ICON_BIG        1
+#endif
+
 #define WM_DONEKEY (WM_XUSER + 1)
 
 #define DEFAULT_KEYSIZE 1024
@@ -293,7 +297,7 @@ static int CALLBACK AboutProc(HWND hwnd, UINT msg,
            return 0;
          case 101:
            EnableWindow(hwnd, 0);
-           DialogBox(hinst, MAKEINTRESOURCE(214), NULL, LicenceProc);
+           DialogBox(hinst, MAKEINTRESOURCE(214), hwnd, LicenceProc);
            EnableWindow(hwnd, 1);
            SetActiveWindow(hwnd);
            return 0;
@@ -813,6 +817,8 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg,
              */
         }
         requested_help = FALSE;
+       SendMessage(hwnd, WM_SETICON, (WPARAM) ICON_BIG,
+                   (LPARAM) LoadIcon(hinst, MAKEINTRESOURCE(200)));
 
        state = smalloc(sizeof(*state));
        state->generation_thread_exists = FALSE;
@@ -1029,7 +1035,7 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg,
            break;
          case IDC_ABOUT:
            EnableWindow(hwnd, 0);
-           DialogBox(hinst, MAKEINTRESOURCE(213), NULL, AboutProc);
+           DialogBox(hinst, MAKEINTRESOURCE(213), hwnd, AboutProc);
            EnableWindow(hwnd, 1);
            SetActiveWindow(hwnd);
            return 0;
@@ -1044,6 +1050,9 @@ static int CALLBACK MainDlgProc(HWND hwnd, UINT msg,
             }
            return 0;
          case IDC_GENERATE:
+            if (HIWORD(wParam) != BN_CLICKED &&
+                HIWORD(wParam) != BN_DOUBLECLICKED)
+               break;
            state =
                (struct MainDlgState *) GetWindowLong(hwnd, GWL_USERDATA);
            if (!state->generation_thread_exists) {