void dom_blur_cb(WebKitDOMEventTarget *target, WebKitDOMEvent *event, gpointer user_data) { (void) target; (void) user_data; WebKitDOMEventTarget *etarget = webkit_dom_event_get_target (event); gchar* name = webkit_dom_node_get_node_name (WEBKIT_DOM_NODE (etarget)); send_event (BLUR_ELEMENT, NULL, TYPE_STR, name, NULL); }
static gboolean mail_shell_view_mail_display_needs_key (EMailDisplay *mail_display, gboolean with_input) { gboolean needs_key = FALSE; if (gtk_widget_has_focus (GTK_WIDGET (mail_display))) { WebKitWebFrame *frame; WebKitDOMDocument *dom; WebKitDOMElement *element; gchar *name = NULL; frame = webkit_web_view_get_focused_frame (WEBKIT_WEB_VIEW (mail_display)); if (!frame) return FALSE; dom = webkit_web_frame_get_dom_document (frame); element = webkit_dom_html_document_get_active_element (WEBKIT_DOM_HTML_DOCUMENT (dom)); if (element) name = webkit_dom_node_get_node_name (WEBKIT_DOM_NODE (element)); /* if INPUT or TEXTAREA has focus, then any key press should go there */ if (name && ((with_input && g_ascii_strcasecmp (name, "INPUT") == 0) || g_ascii_strcasecmp (name, "TEXTAREA") == 0)) { needs_key = TRUE; } g_free (name); } return needs_key; }
static CString dumpNodePath(WebKitDOMNode* node) { GOwnPtr<gchar> nodeName(webkit_dom_node_get_node_name(node)); GString* path = g_string_new(nodeName.get()); WebKitDOMNode* parent = webkit_dom_node_get_parent_node(node); while (parent) { GOwnPtr<gchar> parentName(webkit_dom_node_get_node_name(parent)); g_string_append(path, " > "); g_string_append(path, parentName.get()); parent = webkit_dom_node_get_parent_node(parent); } GOwnPtr<gchar> pathBuffer(g_string_free(path, FALSE)); return pathBuffer.get(); }