On Fri, Sep 14, 2018 at 02:00:32PM +0300, Gabriel Ivăncescu wrote:
@@ -314,6 +322,7 @@ static LRESULT ACEditSubclassProc_KeyUp(IAutoCompleteImpl *ac, HWND hwnd, UINT u static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { IAutoCompleteImpl *This = GetPropW(hwnd, autocomplete_propertyW);
LRESULT ret;
if (!This->enabled) return CallWindowProcW(This->wpOrigEditProc, hwnd, uMsg, wParam, lParam);
@@ -329,8 +338,15 @@ static LRESULT APIENTRY ACEditSubclassProc(HWND hwnd, UINT uMsg, WPARAM wParam, ShowWindow(This->hwndListBox, SW_HIDE); } return CallWindowProcW(This->wpOrigEditProc, hwnd, uMsg, wParam, lParam);
case WM_KEYUP:
return ACEditSubclassProc_KeyUp(This, hwnd, uMsg, wParam, lParam);
case WM_KEYDOWN:
return ACEditSubclassProc_KeyDown(This, hwnd, uMsg, wParam, lParam);
case WM_CHAR:
case WM_UNICHAR:
ret = CallWindowProcW(This->wpOrigEditProc, hwnd, uMsg, wParam, lParam);
autocomplete_text(This, hwnd, (This->options & ACO_AUTOAPPEND) &&
(wParam >= ' ' || wParam == 0x16 /* ^V (paste) */)
? autoappend_flag_yes : autoappend_flag_no);
The condition on flag setting is a hack. For paste you'll likely want a WM_PASTE handler. If pasting didn't work before, then leave it for a later patch, if it did work before this patch you'll have to add such a handler before this one.
Huw.