Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--shell/ev-sidebar-links.c9
2 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b2ac0f5..16b6dc9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+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
+
2005-06-05 Nickolay V. Shmyrev <<nshmyrev@yandex.ru>>
* shell/ev-stock-icons.c:
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