mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[BROWSEUI] Reduce IAutoComplete failures (#3590)
- Delete OnEditUpdate method. - Improve the expand condition. CORE-9281
This commit is contained in:
parent
4214c2bf3c
commit
2fd058dce6
2 changed files with 12 additions and 16 deletions
|
@ -291,7 +291,7 @@ LRESULT CAutoComplete::EditWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM l
|
|||
return OnEditChar(wParam, lParam);
|
||||
case WM_CUT: case WM_PASTE: case WM_CLEAR:
|
||||
ret = ::DefSubclassProc(hwnd, uMsg, wParam, lParam); // do default
|
||||
OnEditUpdate(TRUE);
|
||||
UpdateCompletion(TRUE);
|
||||
return ret;
|
||||
case WM_GETDLGCODE:
|
||||
ret = ::DefSubclassProc(hwnd, uMsg, wParam, lParam); // do default
|
||||
|
@ -950,7 +950,7 @@ BOOL CAutoComplete::OnEditKeyDown(WPARAM wParam, LPARAM lParam)
|
|||
if (!CanAutoSuggest())
|
||||
return FALSE; // do default
|
||||
::DefSubclassProc(m_hwndEdit, WM_KEYDOWN, VK_DELETE, 0); // do default
|
||||
OnEditUpdate(FALSE);
|
||||
UpdateCompletion(FALSE);
|
||||
return TRUE; // eat
|
||||
}
|
||||
case VK_BACK:
|
||||
|
@ -973,21 +973,10 @@ LRESULT CAutoComplete::OnEditChar(WPARAM wParam, LPARAM lParam)
|
|||
return 0; // eat
|
||||
LRESULT ret = ::DefSubclassProc(m_hwndEdit, WM_CHAR, wParam, lParam); // do default
|
||||
if (CanAutoSuggest() || CanAutoAppend())
|
||||
OnEditUpdate(wParam != VK_BACK);
|
||||
UpdateCompletion(wParam != VK_BACK);
|
||||
return ret;
|
||||
}
|
||||
|
||||
VOID CAutoComplete::OnEditUpdate(BOOL bAppendOK)
|
||||
{
|
||||
CStringW strText = GetEditText();
|
||||
if (m_strText.CompareNoCase(strText) == 0)
|
||||
{
|
||||
// no change
|
||||
return;
|
||||
}
|
||||
UpdateCompletion(bAppendOK);
|
||||
}
|
||||
|
||||
VOID CAutoComplete::OnListSelChange()
|
||||
{
|
||||
// update EDIT text
|
||||
|
@ -1508,7 +1497,8 @@ INT CAutoComplete::UpdateInnerList()
|
|||
if (m_strStemText.CompareNoCase(strStemText) != 0)
|
||||
{
|
||||
m_strStemText = strStemText;
|
||||
bExpand = bReset = TRUE;
|
||||
bReset = TRUE;
|
||||
bExpand = !m_strStemText.IsEmpty();
|
||||
}
|
||||
|
||||
// reset if necessary
|
||||
|
@ -1580,6 +1570,13 @@ VOID CAutoComplete::UpdateCompletion(BOOL bAppendOK)
|
|||
{
|
||||
TRACE("CAutoComplete::UpdateCompletion(%p, %d)\n", this, bAppendOK);
|
||||
|
||||
CStringW strText = GetEditText();
|
||||
if (m_strText.CompareNoCase(strText) == 0)
|
||||
{
|
||||
// no change
|
||||
return;
|
||||
}
|
||||
|
||||
// update inner list
|
||||
UINT cItems = UpdateInnerList();
|
||||
if (cItems == 0) // no items
|
||||
|
|
|
@ -163,7 +163,6 @@ public:
|
|||
LRESULT EditWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
||||
LRESULT OnEditChar(WPARAM wParam, LPARAM lParam);
|
||||
BOOL OnEditKeyDown(WPARAM wParam, LPARAM lParam);
|
||||
VOID OnEditUpdate(BOOL bAppendOK);
|
||||
VOID OnListSelChange();
|
||||
BOOL OnListUpDown(UINT vk);
|
||||
|
||||
|
|
Loading…
Reference in a new issue