static HRESULT WINAPI HTMLEventObj_get_ctrlKey(IHTMLEventObj *iface, VARIANT_BOOL *p) { HTMLEventObj *This = impl_from_IHTMLEventObj(iface); cpp_bool ret = FALSE; TRACE("(%p)->(%p)\n", This, p); if(This->nsevent) { nsIDOMKeyEvent *key_event; nsresult nsres; nsres = nsIDOMEvent_QueryInterface(This->nsevent, &IID_nsIDOMKeyEvent, (void**)&key_event); if(NS_SUCCEEDED(nsres)) { nsIDOMKeyEvent_GetCtrlKey(key_event, &ret); nsIDOMKeyEvent_Release(key_event); }else { nsIDOMMouseEvent *mouse_event; nsres = nsIDOMEvent_QueryInterface(This->nsevent, &IID_nsIDOMMouseEvent, (void**)&mouse_event); if(NS_SUCCEEDED(nsres)) { nsIDOMMouseEvent_GetCtrlKey(mouse_event, &ret); nsIDOMMouseEvent_Release(mouse_event); } } } *p = ret ? VARIANT_TRUE : VARIANT_FALSE; return S_OK; }
static void handle_arrow_key(HTMLDocument *This, nsIDOMEvent *event, nsIDOMKeyEvent *key_event, const char * const cmds[4]) { int i=0; cpp_bool b; nsIDOMKeyEvent_GetCtrlKey(key_event, &b); if(b) i |= 1; nsIDOMKeyEvent_GetShiftKey(key_event, &b); if(b) i |= 2; if(cmds[i]) do_ns_editor_command(This->doc_obj->nscontainer, cmds[i]); nsIDOMEvent_PreventDefault(event); }
static void handle_arrow_key(HTMLDocumentNode *doc, nsIDOMEvent *event, nsIDOMKeyEvent *key_event, const char * const cmds[4]) { int i=0; cpp_bool b; nsIDOMKeyEvent_GetCtrlKey(key_event, &b); if(b) i |= 1; nsIDOMKeyEvent_GetShiftKey(key_event, &b); if(b) i |= 2; if(cmds[i]) do_ns_editor_command(doc->browser, cmds[i]); nsIDOMEvent_PreventDefault(event); }