# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1050494400 0 # Node ID 84a24d739d1203a03a1db9452f294c4e28e144da # Parent 2216e65ad2ae2dbbdfe943da265176c9a57f9467 Make dw_listbox_query_text() work on comboboxes on Windows. diff -r 2216e65ad2ae -r 84a24d739d12 win/dw.c --- a/win/dw.c Mon Apr 14 13:47:20 2003 +0000 +++ b/win/dw.c Wed Apr 16 12:00:00 2003 +0000 @@ -5174,8 +5174,32 @@ */ void API dw_listbox_query_text(HWND handle, unsigned int index, char *buffer, unsigned int length) { - SendMessage(handle, - LB_GETTEXT, (WPARAM)index, (LPARAM)buffer); + char tmpbuf[100]; + int len; + + if(!buffer || !length) + return; + + buffer[0] = 0; + + GetClassName(handle, tmpbuf, 99); + + if(strnicmp(tmpbuf, COMBOBOXCLASSNAME, strlen(COMBOBOXCLASSNAME))==0) + { + len = (int)SendMessage(handle, CB_GETLBTEXTLEN, (WPARAM)index, 0); + + if(len < length && len != CB_ERR) + SendMessage(handle, + CB_GETLBTEXT, (WPARAM)index, (LPARAM)buffer); + } + else + { + len = (int)SendMessage(handle, LB_GETTEXTLEN, (WPARAM)index, 0); + + if(len < length && len != LB_ERR) + SendMessage(handle, + LB_GETTEXT, (WPARAM)index, (LPARAM)buffer); + } } /*