Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2007-07-01 08:45:11 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2007-07-01 08:45:11 (GMT)
commit8aa10d0c9037d2a85c4d988008bb17469f5f6154 (patch)
tree805f0feef1b4dce198e2eebab9183c5b1cb8f412
parent666b70bb0dda34ead084650af4514cf7c2d82c8e (diff)
Do not connect selection changed signal more than once. Fixes bug #349433.
2007-07-01 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-sidebar-links.c: (job_finished_callback): Do not connect selection changed signal more than once. Fixes bug #349433. svn path=/trunk/; revision=2531
-rw-r--r--ChangeLog7
-rw-r--r--shell/ev-sidebar-links.c24
2 files changed, 23 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index c8d60d2..d75c200 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-07-01 Carlos Garcia Campos <carlosgc@gnome.org>
+
+ * shell/ev-sidebar-links.c: (job_finished_callback):
+
+ Do not connect selection changed signal more than once. Fixes bug
+ #349433.
+
2007-06-29 Carlos Garcia Campos <carlosgc@gnome.org>
* shell/ev-window.c: (ev_window_view_sidebar_cb):
diff --git a/shell/ev-sidebar-links.c b/shell/ev-sidebar-links.c
index 5d34695..cbe19b1 100644
--- a/shell/ev-sidebar-links.c
+++ b/shell/ev-sidebar-links.c
@@ -593,7 +593,7 @@ row_activated_callback (GtkTreeView *treeview,
GtkTreePath *arg1,
GtkTreeViewColumn *arg2,
gpointer user_data)
-{
+{
if (gtk_tree_view_row_expanded (GTK_TREE_VIEW (treeview), arg1)) {
gtk_tree_view_collapse_row (GTK_TREE_VIEW (treeview), arg1);
} else {
@@ -648,18 +648,26 @@ job_finished_callback (EvJobLinks *job,
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree_view));
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
- priv->selection_id = g_signal_connect (selection, "changed",
- G_CALLBACK (selection_changed_callback),
- sidebar_links);
- priv->page_changed_id = g_signal_connect (priv->page_cache, "page-changed",
+
+ if (priv->selection_id <= 0) {
+ priv->selection_id =
+ g_signal_connect (selection, "changed",
+ G_CALLBACK (selection_changed_callback),
+ sidebar_links);
+ }
+ priv->page_changed_id = g_signal_connect (priv->page_cache, "page-changed",
G_CALLBACK (update_page_callback),
sidebar_links);
- priv->row_activated_id = g_signal_connect (G_OBJECT (priv->tree_view), "row-activated",
- G_CALLBACK (row_activated_callback), sidebar_links);
+ if (priv->row_activated_id <= 0) {
+ priv->row_activated_id =
+ g_signal_connect (G_OBJECT (priv->tree_view), "row-activated",
+ G_CALLBACK (row_activated_callback),
+ sidebar_links);
+ }
+
update_page_callback (priv->page_cache,
ev_page_cache_get_current_page (priv->page_cache),
sidebar_links);
-
}
static void