Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2005-06-06 09:01:06 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-06-06 09:01:06 (GMT)
commit9f3860c715d418bc4af69e0409714a6d58677839 (patch)
tree94005c8ed8d5697ed29c3e4dee7fbc68d73d1acd /shell
parentdf9fcbd74c6e7bebad8b481bf6cd5c21813e2390 (diff)
Cleanup the old job when changing document
2005-06-06 Marco Pesenti Gritti <mpg@redhat.com> * shell/ev-sidebar-links.c: (job_finished_callback), (ev_sidebar_links_set_document): Cleanup the old job when changing document
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-sidebar-links.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/shell/ev-sidebar-links.c b/shell/ev-sidebar-links.c
index 1d73822..ac34bac 100644
--- a/shell/ev-sidebar-links.c
+++ b/shell/ev-sidebar-links.c
@@ -523,6 +523,7 @@ job_finished_callback (EvJobLinks *job,
gtk_tree_view_set_model (GTK_TREE_VIEW (priv->tree_view), job->model);
g_object_unref (job);
+ priv->job = NULL;
/* Expand one level of the tree */
path = gtk_tree_path_new_first ();
@@ -572,6 +573,13 @@ ev_sidebar_links_set_document (EvSidebarPage *sidebar_page,
priv->document = g_object_ref (document);
priv->page_cache = ev_document_get_page_cache (document);
+ if (priv->job) {
+ g_signal_handlers_disconnect_by_func (priv->job,
+ job_finished_callback,
+ sidebar_links);
+ g_object_unref (priv->job);
+ }
+
priv->job = ev_job_links_new (document);
g_signal_connect (priv->job,
"finished",
@@ -579,7 +587,6 @@ ev_sidebar_links_set_document (EvSidebarPage *sidebar_page,
sidebar_links);
/* The priority doesn't matter for this job */
ev_job_queue_add_job (priv->job, EV_JOB_PRIORITY_LOW);
-
}
static gboolean