Module: wine Branch: master Commit: 6f3f291c09d44cc1232213501878e2bb07d446fd URL: https://source.winehq.org/git/wine.git/?a=commit;h=6f3f291c09d44cc1232213501...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Jun 12 14:21:42 2018 +0200
mshtml: Support input event.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/mshtml/htmldoc.c | 12 ++++++++---- dlls/mshtml/htmlelem.c | 12 ++++++++---- dlls/mshtml/htmlevent.c | 5 ++++- dlls/mshtml/htmlevent.h | 1 + dlls/mshtml/htmlwindow.c | 2 +- 5 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index 6030681..eab7b1f 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -3710,15 +3710,19 @@ static HRESULT WINAPI HTMLDocument7_get_onfocus(IHTMLDocument7 *iface, VARIANT * static HRESULT WINAPI HTMLDocument7_put_oninput(IHTMLDocument7 *iface, VARIANT v) { HTMLDocument *This = impl_from_IHTMLDocument7(iface); - FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); - return E_NOTIMPL; + + TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); + + return set_doc_event(This, EVENTID_INPUT, &v); }
static HRESULT WINAPI HTMLDocument7_get_oninput(IHTMLDocument7 *iface, VARIANT *p) { HTMLDocument *This = impl_from_IHTMLDocument7(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_doc_event(This, EVENTID_INPUT, p); }
static HRESULT WINAPI HTMLDocument7_put_onload(IHTMLDocument7 *iface, VARIANT v) diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c index 8a4e164..40e558c 100644 --- a/dlls/mshtml/htmlelem.c +++ b/dlls/mshtml/htmlelem.c @@ -4402,15 +4402,19 @@ static HRESULT WINAPI HTMLElement6_get_onerror(IHTMLElement6 *iface, VARIANT *p) static HRESULT WINAPI HTMLElement6_put_oninput(IHTMLElement6 *iface, VARIANT v) { HTMLElement *This = impl_from_IHTMLElement6(iface); - FIXME("(%p)->(%s)\n", This, debugstr_variant(&v)); - return E_NOTIMPL; + + TRACE("(%p)->(%s)\n", This, debugstr_variant(&v)); + + return set_node_event(&This->node, EVENTID_INPUT, &v); }
static HRESULT WINAPI HTMLElement6_get_oninput(IHTMLElement6 *iface, VARIANT *p) { HTMLElement *This = impl_from_IHTMLElement6(iface); - FIXME("(%p)->(%p)\n", This, p); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, p); + + return get_node_event(&This->node, EVENTID_INPUT, p); }
static HRESULT WINAPI HTMLElement6_put_onload(IHTMLElement6 *iface, VARIANT v) diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index dd63b39..d5d5990 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -76,6 +76,7 @@ static const WCHAR focusW[] = {'f','o','c','u','s',0}; static const WCHAR focusinW[] = {'f','o','c','u','s','i','n',0}; static const WCHAR focusoutW[] = {'f','o','c','u','s','o','u','t',0}; static const WCHAR helpW[] = {'h','e','l','p',0}; +static const WCHAR inputW[] = {'i','n','p','u','t',0}; static const WCHAR keydownW[] = {'k','e','y','d','o','w','n',0}; static const WCHAR keypressW[] = {'k','e','y','p','r','e','s','s',0}; static const WCHAR keyupW[] = {'k','e','y','u','p',0}; @@ -183,6 +184,8 @@ static const event_info_t event_info[] = { EVENT_BUBBLES}, {helpW, EVENT_TYPE_EVENT, DISPID_EVMETH_ONHELP, EVENT_BUBBLES | EVENT_CANCELABLE}, + {inputW, EVENT_TYPE_EVENT, DISPID_UNKNOWN, + EVENT_DEFAULTLISTENER | EVENT_BUBBLES}, {keydownW, EVENT_TYPE_KEYBOARD, DISPID_EVMETH_ONKEYDOWN, EVENT_DEFAULTLISTENER | EVENT_HASDEFAULTHANDLERS | EVENT_BUBBLES | EVENT_CANCELABLE }, {keypressW, EVENT_TYPE_KEYBOARD, DISPID_EVMETH_ONKEYPRESS, @@ -2270,7 +2273,7 @@ static BOOL is_cp_event(cp_static_data_t *data, DISPID dispid) int min, max, i; HRESULT hres;
- if(!data) + if(!data || dispid == DISPID_UNKNOWN) return FALSE;
if(!data->ids) { diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h index 4d1267e..1a7afb5 100644 --- a/dlls/mshtml/htmlevent.h +++ b/dlls/mshtml/htmlevent.h @@ -34,6 +34,7 @@ typedef enum { EVENTID_FOCUSIN, EVENTID_FOCUSOUT, EVENTID_HELP, + EVENTID_INPUT, EVENTID_KEYDOWN, EVENTID_KEYPRESS, EVENTID_KEYUP, diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c index 9b84780..364dae8 100644 --- a/dlls/mshtml/htmlwindow.c +++ b/dlls/mshtml/htmlwindow.c @@ -2450,7 +2450,7 @@ HTMLWINDOW7_ONEVENT_PROPERTY_STUB(drop) HTMLWINDOW7_ONEVENT_PROPERTY_STUB(durationchange) HTMLWINDOW7_ONEVENT_PROPERTY_IMPL(focusin, EVENTID_FOCUSIN) HTMLWINDOW7_ONEVENT_PROPERTY_IMPL(focusout, EVENTID_FOCUSOUT) -HTMLWINDOW7_ONEVENT_PROPERTY_STUB(input) +HTMLWINDOW7_ONEVENT_PROPERTY_IMPL(input, EVENTID_INPUT) HTMLWINDOW7_ONEVENT_PROPERTY_STUB(emptied) HTMLWINDOW7_ONEVENT_PROPERTY_STUB(ended) HTMLWINDOW7_ONEVENT_PROPERTY_IMPL(keydown, EVENTID_KEYDOWN)