X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/b8ae1f0f33829d37d85254de8cea8182b4c8f628..41d3adbbfed77605e4a397ce199c5751c35bf94b:/winctrls.c?ds=sidebyside diff --git a/winctrls.c b/winctrls.c index 72550d0e..df0edce7 100644 --- a/winctrls.c +++ b/winctrls.c @@ -315,14 +315,14 @@ void checkbox(struct ctlpos *cp, char *text, int id) /* * A single standalone static text control. */ -void statictext(struct ctlpos *cp, char *text, int id) +void statictext(struct ctlpos *cp, char *text, int lines, int id) { RECT r; r.left = GAPBETWEEN; r.top = cp->ypos; r.right = cp->width; - r.bottom = STATICHEIGHT; + r.bottom = STATICHEIGHT * lines; cp->ypos += r.bottom + GAPBETWEEN; doctl(cp, r, "STATIC", WS_CHILD | WS_VISIBLE, 0, text, id); } @@ -712,7 +712,7 @@ void charclass(struct ctlpos *cp, char *stext, int sid, int listid, PUSHBTNHEIGHT ? EDITHEIGHT : PUSHBTNHEIGHT); const static int percents[] = { 30, 40, 30 }; int i, xpos, percent; - const int LISTHEIGHT = 66; + const int LISTHEIGHT = 52; /* The static control. */ r.left = GAPBETWEEN; @@ -1024,20 +1024,20 @@ int handle_prefslist(struct prefslist *hdl, SetWindowLong(hwnd, DWL_MSGRESULT, DL_STOPCURSOR); ret = 1; break; case DL_DROPPED: - ret = 1; - if (!hdl->dragging) break; - dest = pl_itemfrompt(dlm->hWnd, dlm->ptCursor, TRUE); - if (dest > hdl->dummyitem) dest = hdl->dummyitem; - DrawInsert (hwnd, dlm->hWnd, -1); + if (hdl->dragging) { + dest = pl_itemfrompt(dlm->hWnd, dlm->ptCursor, TRUE); + if (dest > hdl->dummyitem) dest = hdl->dummyitem; + DrawInsert (hwnd, dlm->hWnd, -1); + } SendDlgItemMessage(hwnd, hdl->listid, LB_DELETESTRING, hdl->dummyitem, 0); - hdl->dragging = 0; - if (dest >= 0) { - /* Correct for "missing" item. This means you can't drag - * an item to the end, but that seems to be the way this - * control is used. */ - if (dest > hdl->srcitem) dest--; - pl_moveitem(hwnd, hdl->listid, hdl->srcitem, dest); + if (hdl->dragging) { + hdl->dragging = 0; + if (dest >= 0) { + /* Correct for "missing" item. */ + if (dest > hdl->srcitem) dest--; + pl_moveitem(hwnd, hdl->listid, hdl->srcitem, dest); + } } ret = 1; break; }