From 1ad62f2391a7787aa25d4202eb12aec7150fe2e4 Mon Sep 17 00:00:00 2001 From: jacob Date: Sun, 18 Feb 2007 19:50:41 +0000 Subject: [PATCH] Allow dlg_listbox_index() to be called on multi-selection list boxes. git-svn-id: svn://svn.tartarus.org/sgt/putty@7297 cda61777-01e9-0310-a592-d414129be87e --- windows/winctrls.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/windows/winctrls.c b/windows/winctrls.c index 9e8e0e7d..a618a696 100644 --- a/windows/winctrls.c +++ b/windows/winctrls.c @@ -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) -- 2.11.0