From b962907dc86fefd2db4d99ec064664d4ba92f537 Mon Sep 17 00:00:00 2001 From: Daniel Carl Date: Sat, 13 Apr 2013 12:17:48 +0200 Subject: [PATCH] Added new function to get active dom element. Change api of dom function to take the webview as parameter. --- src/command.c | 1 + src/dom.c | 15 +++++++++------ src/dom.h | 5 +++-- src/main.c | 4 ++-- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/command.c b/src/command.c index 82a891c..fa5ee77 100644 --- a/src/command.c +++ b/src/command.c @@ -27,6 +27,7 @@ #include "searchengine.h" #include "history.h" #include "bookmark.h" +#include "dom.h" extern VbCore vb; extern const unsigned int INPUT_LENGTH; diff --git a/src/dom.c b/src/dom.c index cd722ae..9ded553 100644 --- a/src/dom.c +++ b/src/dom.c @@ -27,9 +27,9 @@ static gboolean editable_focus_cb(Element *element, Event *event); static Element *get_active_element(Document *doc); -void dom_check_auto_insert(void) +void dom_check_auto_insert(WebKitWebView *view) { - Document *doc = webkit_web_view_get_dom_document(vb.gui.webview); + Document *doc = webkit_web_view_get_dom_document(view); Element *active = get_active_element(doc); /* the focus was not set automatically - add event listener to track focus @@ -48,11 +48,9 @@ void dom_check_auto_insert(void) /** * Remove focus from active and editable elements. */ -void dom_clear_focus(void) +void dom_clear_focus(WebKitWebView *view) { - Document *doc = webkit_web_view_get_dom_document(vb.gui.webview); - Element *active = get_active_element(doc); - + Element *active = dom_get_active_element(view); if (active) { webkit_dom_element_blur(active); } @@ -90,6 +88,11 @@ gboolean dom_is_editable(Element *element) return result; } +Element *dom_get_active_element(WebKitWebView *view) +{ + return get_active_element(webkit_web_view_get_dom_document(view)); +} + static gboolean auto_insert(Element *element) { if (dom_is_editable(element)) { diff --git a/src/dom.h b/src/dom.h index 61952f5..18f9388 100644 --- a/src/dom.h +++ b/src/dom.h @@ -39,8 +39,9 @@ typedef struct { gulong bottom; } DomBoundingRect; -void dom_check_auto_insert(void); -void dom_clear_focus(void); +void dom_check_auto_insert(WebKitWebView *view); +void dom_clear_focus(WebKitWebView *view); gboolean dom_is_editable(Element *element); +Element *dom_get_active_element(WebKitWebView *view); #endif /* end of include guard: _DOM_H */ diff --git a/src/main.c b/src/main.c index 5e2e3ad..bfa2683 100644 --- a/src/main.c +++ b/src/main.c @@ -225,7 +225,7 @@ gboolean vb_set_mode(Mode mode, gboolean clean) switch (clean_old) { case VB_MODE_INSERT: clean = true; - dom_clear_focus(); + dom_clear_focus(vb.gui.webview); break; case VB_MODE_HINTING: @@ -423,7 +423,7 @@ static void webview_load_status_cb(WebKitWebView *view, GParamSpec *pspec) vb.state.progress = 100; vb_update_statusbar(); - dom_check_auto_insert(); + dom_check_auto_insert(view); history_add(HISTORY_URL, uri); break; -- 2.20.1