]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Allow dlg_listbox_index() to be called on multi-selection list boxes.
authorJacob Nevins <jacobn@chiark.greenend.org.uk>
Sun, 18 Feb 2007 19:50:41 +0000 (19:50 +0000)
committerJacob Nevins <jacobn@chiark.greenend.org.uk>
Sun, 18 Feb 2007 19:50:41 +0000 (19:50 +0000)
[originally from svn r7297]

windows/winctrls.c

index 9e8e0e7da677ec6b22ff3e9a4086188032226952..a618a696f657671d7fbaa259549764fbf3d23490 100644 (file)
@@ -2194,8 +2194,13 @@ int dlg_listbox_index(union control *ctrl, void *dlg)
     struct dlgparam *dp = (struct dlgparam *)dlg;
     struct winctrl *c = dlg_findbyctrl(dp, ctrl);
     int msg, ret;
-    assert(c && c->ctrl->generic.type == CTRL_LISTBOX &&
-          !c->ctrl->listbox.multisel);
+    assert(c && c->ctrl->generic.type == CTRL_LISTBOX);
+    if (c->ctrl->listbox.multisel) {
+       assert(c->ctrl->listbox.height != 0); /* not combo box */
+       ret = SendDlgItemMessage(dp->hwnd, c->base_id+1, LB_GETSELCOUNT, 0, 0);
+       if (ret == LB_ERR || ret > 1)
+           return -1;
+    }
     msg = (c->ctrl->listbox.height != 0 ? LB_GETCURSEL : CB_GETCURSEL);
     ret = SendDlgItemMessage(dp->hwnd, c->base_id+1, msg, 0, 0);
     if (ret == LB_ERR)