[Xfce4-commits] <midori:master> Keep a reference on the DOM element

Christian Dywan noreply at xfce.org
Mon Feb 13 01:30:02 CET 2012


Updating branch refs/heads/master
         to 93bec3142f250c542bc2e8c8b858999c8ed146b5 (commit)
       from 6c87ccc3b32fefcfb45b793162f6565b4ea58440 (commit)

commit 93bec3142f250c542bc2e8c8b858999c8ed146b5
Author: Christian Dywan <christian at twotoasts.de>
Date:   Mon Feb 13 01:27:41 2012 +0100

    Keep a reference on the DOM element

 extensions/formhistory/formhistory-gdom-frontend.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/extensions/formhistory/formhistory-gdom-frontend.c b/extensions/formhistory/formhistory-gdom-frontend.c
index 8ed467d..4bb0944 100644
--- a/extensions/formhistory/formhistory-gdom-frontend.c
+++ b/extensions/formhistory/formhistory-gdom-frontend.c
@@ -190,6 +190,8 @@ formhistory_suggestions_show (FormHistoryPriv* priv)
     gchar* likedvalue;
     int pos = 0;
 
+    g_return_if_fail (priv->element);
+
     g_object_get (priv->element,
                   "name", &name,
                   "value", &value,
@@ -260,12 +262,12 @@ formhistory_editbox_key_pressed_cb (WebKitDOMElement* element,
 
     /* FIXME: Priv is still set after module is disabled */
     g_return_if_fail (priv);
-    g_return_if_fail (priv->element);
+    g_return_if_fail (element);
 
     if (priv->completion_timeout > 0)
         g_source_remove (priv->completion_timeout);
 
-    priv->element = element;
+    katze_object_assign (priv->element, g_object_ref (element));
 
     key = webkit_dom_ui_event_get_key_code (WEBKIT_DOM_UI_EVENT (dom_event));
     switch (key)
@@ -354,15 +356,17 @@ formhistory_editbox_key_pressed_cb (WebKitDOMElement* element,
     if (!(keyword && *keyword && *keyword != ' '))
     {
         formhistory_suggestions_hide_cb (element, dom_event, priv);
-        return;
+        goto free_data;
     }
 
     /* If the same keyword is submitted there's no need to regenerate suggestions */
     if (gtk_widget_get_visible (priv->popup) &&
         !g_strcmp0 (keyword, priv->oldkeyword))
-        return;
+        goto free_data;
     priv->completion_timeout = g_timeout_add (COMPLETION_DELAY,
                                (GSourceFunc)formhistory_suggestions_show, priv);
+free_data:
+    g_free (keyword);
 }
 
 static void
@@ -462,6 +466,7 @@ formhistory_private_destroy (FormHistoryPriv *priv)
     katze_assign (priv->oldkeyword, NULL);
     gtk_widget_destroy (priv->popup);
     priv->popup = NULL;
+    katze_object_assign (priv->element, NULL);
     g_slice_free (FormHistoryPriv, priv);
 }
 


More information about the Xfce4-commits mailing list