diff options
author | Carlos 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) |
commit | 8aa10d0c9037d2a85c4d988008bb17469f5f6154 (patch) | |
tree | 805f0feef1b4dce198e2eebab9183c5b1cb8f412 | |
parent | 666b70bb0dda34ead084650af4514cf7c2d82c8e (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-- | ChangeLog | 7 | ||||
-rw-r--r-- | shell/ev-sidebar-links.c | 24 |
2 files changed, 23 insertions, 8 deletions
@@ -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 |