Support for using variable-pitch fonts for the terminal on Windows.
[u/mdw/putty] / windows / windlg.c
index db1ef2f..7377cd3 100644 (file)
@@ -322,7 +322,7 @@ static HTREEITEM treeview_insert(struct treeview_faff *faff,
     newitem = TreeView_InsertItem(faff->treeview, &ins);
     if (level > 0)
        TreeView_Expand(faff->treeview, faff->lastat[level - 1],
-                       TVE_EXPAND);
+                       (level > 1 ? TVE_COLLAPSE : TVE_EXPAND));
     faff->lastat[level] = newitem;
     for (i = level + 1; i < 4; i++)
        faff->lastat[i] = NULL;
@@ -649,6 +649,7 @@ int do_config(void)
     dp.wintitle = dupprintf("%s Configuration", appname);
     dp.errtitle = dupprintf("%s Error", appname);
     dp.data = &cfg;
+    dlg_auto_set_fixed_pitch_flag(&dp);
     dp.shortcuts['g'] = TRUE;         /* the treeview: `Cate&gory' */
 
     ret =
@@ -682,6 +683,7 @@ int do_reconfig(HWND hwnd, int protcfginfo)
     dp.wintitle = dupprintf("%s Reconfiguration", appname);
     dp.errtitle = dupprintf("%s Error", appname);
     dp.data = &cfg;
+    dlg_auto_set_fixed_pitch_flag(&dp);
     dp.shortcuts['g'] = TRUE;         /* the treeview: `Cate&gory' */
 
     ret = SaneDialogBox(hinst, MAKEINTRESOURCE(IDD_MAINBOX), NULL,
@@ -786,7 +788,7 @@ int verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
 
     if (ret == 0)                     /* success - key matched OK */
        return 1;
-    if (ret == 2) {                   /* key was different */
+    else if (ret == 2) {              /* key was different */
        int mbret;
        char *text = dupprintf(wrongmsg, appname, keytype, fingerprint,
                               appname);
@@ -802,9 +804,7 @@ int verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
            return 1;
        } else if (mbret == IDNO)
            return 1;
-        return 0;
-    }
-    if (ret == 1) {                   /* key was absent */
+    } else if (ret == 1) {            /* key was absent */
        int mbret;
        char *text = dupprintf(absentmsg, keytype, fingerprint, appname);
        char *caption = dupprintf(mbtitle, appname);
@@ -819,8 +819,8 @@ int verify_ssh_host_key(void *frontend, char *host, int port, char *keytype,
            return 1;
        } else if (mbret == IDNO)
            return 1;
-        return 0;
     }
+    return 0;  /* abandon the connection */
 }
 
 /*
@@ -843,6 +843,7 @@ int askalg(void *frontend, const char *algtype, const char *algname,
     title = dupprintf(mbtitle, appname);
     mbret = MessageBox(NULL, message, title,
                       MB_ICONWARNING | MB_YESNO | MB_DEFBUTTON2);
+    socket_reselect_all();
     sfree(message);
     sfree(title);
     if (mbret == IDYES)
@@ -875,6 +876,8 @@ int askappend(void *frontend, Filename filename,
     mbret = MessageBox(NULL, message, mbtitle,
                       MB_ICONQUESTION | MB_YESNOCANCEL | MB_DEFBUTTON3);
 
+    socket_reselect_all();
+
     sfree(message);
     sfree(mbtitle);
 
@@ -916,6 +919,8 @@ void old_keyfile_warning(void)
 
     MessageBox(NULL, msg, title, MB_OK);
 
+    socket_reselect_all();
+
     sfree(msg);
     sfree(title);
 }