aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXan Lopez <xan@gnome.org>2011-02-12 07:39:34 +0800
committerXan Lopez <xan@gnome.org>2011-02-12 07:39:34 +0800
commit763dbbffec69ec7dec320b841636029fa5cde85b (patch)
treec33aadb8a12bdae585c827751b0fb99b7d0ea28d
parente65e2873a6d8407e9a8801e8667085ec10fa261f (diff)
downloadgsoc2013-epiphany-763dbbffec69ec7dec320b841636029fa5cde85b.tar.gz
gsoc2013-epiphany-763dbbffec69ec7dec320b841636029fa5cde85b.tar.zst
gsoc2013-epiphany-763dbbffec69ec7dec320b841636029fa5cde85b.zip
ephy-web-view: do not update status after we are dead
We now reach to the EphyEmbed, so this is dangerous.
-rw-r--r--embed/ephy-web-view.c36
1 files changed, 19 insertions, 17 deletions
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index bfa45edfa..5c5113545 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -549,10 +549,29 @@ ephy_web_view_button_press_event (GtkWidget *widget, GdkEventButton *event)
}
static void
+status_message_notify_cb (EphyWebView *view, GParamSpec *pspec, gpointer data)
+{
+ const char *message;
+ EphyWebViewPrivate *priv;
+
+ message = ephy_web_view_get_status_message (view);
+
+ priv = view->priv;
+
+ ephy_web_view_statusbar_pop (view, priv->tab_message_id);
+
+ if (message)
+ ephy_web_view_statusbar_push (view, priv->tab_message_id, message);
+
+}
+
+static void
ephy_web_view_dispose (GObject *object)
{
ephy_web_view_file_monitor_cancel (EPHY_WEB_VIEW (object));
+ g_signal_handlers_disconnect_by_func (object, G_CALLBACK (status_message_notify_cb), NULL);
+
G_OBJECT_CLASS (ephy_web_view_parent_class)->dispose (object);
}
@@ -2187,23 +2206,6 @@ vadjustment_changed_cb (EphyWebView *view, GParamSpec *pspec, gpointer data)
}
static void
-status_message_notify_cb (EphyWebView *view, GParamSpec *pspec, gpointer data)
-{
- const char *message;
- EphyWebViewPrivate *priv;
-
- message = ephy_web_view_get_status_message (view);
-
- priv = view->priv;
-
- ephy_web_view_statusbar_pop (view, priv->tab_message_id);
-
- if (message)
- ephy_web_view_statusbar_push (view, priv->tab_message_id, message);
-
-}
-
-static void
ephy_web_view_init (EphyWebView *web_view)
{
EphyWebViewPrivate *priv;