[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