Added new function to get active dom element.
authorDaniel Carl <danielcarl@gmx.de>
Sat, 13 Apr 2013 10:17:48 +0000 (12:17 +0200)
committerDaniel Carl <danielcarl@gmx.de>
Sat, 13 Apr 2013 10:20:16 +0000 (12:20 +0200)
Change api of dom function to take the webview as parameter.

src/command.c
src/dom.c
src/dom.h
src/main.c

index 82a891c..fa5ee77 100644 (file)
@@ -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;
index cd722ae..9ded553 100644 (file)
--- 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)) {
index 61952f5..18f9388 100644 (file)
--- 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 */
index 5e2e3ad..bfa2683 100644 (file)
@@ -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;