[PATCH 1/2] shell32/autocomplete: Retrieve the count in show_listbox
Gabriel Ivăncescu
gabrielopcode at gmail.com
Fri Nov 16 09:38:03 CST 2018
Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
---
dlls/shell32/autocomplete.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/dlls/shell32/autocomplete.c b/dlls/shell32/autocomplete.c
index 6d8988b..c9bf9ff 100644
--- a/dlls/shell32/autocomplete.c
+++ b/dlls/shell32/autocomplete.c
@@ -193,15 +193,16 @@ static void hide_listbox(IAutoCompleteImpl *ac, HWND hwnd, BOOL reset)
if (reset) free_enum_strs(ac);
}
-static void show_listbox(IAutoCompleteImpl *ac, UINT cnt)
+static void show_listbox(IAutoCompleteImpl *ac)
{
RECT r;
- UINT width, height;
+ UINT cnt, width, height;
GetWindowRect(ac->hwndEdit, &r);
SendMessageW(ac->hwndListBox, LB_CARETOFF, 0, 0);
/* Windows XP displays 7 lines at most, then it uses a scroll bar */
+ cnt = SendMessageW(ac->hwndListBox, LB_GETCOUNT, 0, 0);
height = SendMessageW(ac->hwndListBox, LB_GETITEMHEIGHT, 0, 0) * min(cnt + 1, 7);
width = r.right - r.left;
@@ -404,7 +405,7 @@ static BOOL display_matching_strs(IAutoCompleteImpl *ac, WCHAR *text, UINT len,
{
/* Return FALSE if we need to hide the listbox */
WCHAR **str = ac->enum_strs;
- UINT cnt, start, end;
+ UINT start, end;
if (!str) return (ac->options & ACO_AUTOSUGGEST) ? FALSE : TRUE;
/* Windows seems to disable autoappend if ACO_NOPREFIXFILTERING is set */
@@ -432,15 +433,14 @@ static BOOL display_matching_strs(IAutoCompleteImpl *ac, WCHAR *text, UINT len,
if (end == 0)
return FALSE;
}
- cnt = end - start;
SendMessageW(ac->hwndListBox, WM_SETREDRAW, FALSE, 0);
SendMessageW(ac->hwndListBox, LB_RESETCONTENT, 0, 0);
- SendMessageW(ac->hwndListBox, LB_INITSTORAGE, cnt, 0);
+ SendMessageW(ac->hwndListBox, LB_INITSTORAGE, end - start, 0);
for (; start < end; start++)
SendMessageW(ac->hwndListBox, LB_INSERTSTRING, -1, (LPARAM)str[start]);
- show_listbox(ac, cnt);
+ show_listbox(ac);
SendMessageW(ac->hwndListBox, WM_SETREDRAW, TRUE, 0);
return TRUE;
}
--
2.19.1
More information about the wine-devel
mailing list