aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog11
-rw-r--r--shell/e-shell-view.c12
2 files changed, 18 insertions, 5 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index eff74020da..b8374179f6 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,3 +1,14 @@
+2002-02-26 Ettore Perazzoli <ettore@ximian.com>
+
+ [This gets rid of some spurious "could not find handler" messages
+ on exit. What happened is that the signal would be disconnected
+ twice, once by cleanup_delayed_selection() and once by the
+ while_alive handler.]
+
+ * e-shell-view.c (destroy): Call cleanup_delayed_selection() here.
+ (e_shell_view_display_uri): Use gtk_signal_connect_full(), not
+ e_gtk_signal_connect_full_while_alive().
+
2002-02-23 Ettore Perazzoli <ettore@ximian.com>
* e-shell-about-box.c: Add year 2002 to the copyright.
diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c
index 7d369a9037..78059f5e17 100644
--- a/shell/e-shell-view.c
+++ b/shell/e-shell-view.c
@@ -1193,6 +1193,10 @@ destroy (GtkObject *object)
shell_view = E_SHELL_VIEW (object);
priv = shell_view->priv;
+ /* This is necessary to remove the signal handler for folder_new on the
+ storage set used for the delayed selection mechanism. */
+ cleanup_delayed_selection (shell_view);
+
gtk_object_unref (GTK_OBJECT (priv->tooltips));
if (priv->history != NULL)
@@ -2138,11 +2142,9 @@ display_uri (EShellView *shell_view,
} else if (! create_new_view_for_uri (shell_view, uri)) {
cleanup_delayed_selection (shell_view);
priv->delayed_selection = g_strdup (uri);
- e_gtk_signal_connect_full_while_alive (GTK_OBJECT (e_shell_get_storage_set (priv->shell)), "new_folder",
- GTK_SIGNAL_FUNC (new_folder_cb), NULL,
- shell_view, NULL,
- FALSE, TRUE,
- GTK_OBJECT (shell_view));
+ gtk_signal_connect_full (GTK_OBJECT (e_shell_get_storage_set (priv->shell)),
+ "new_folder", GTK_SIGNAL_FUNC (new_folder_cb), NULL,
+ shell_view, NULL, FALSE, TRUE);
retval = FALSE;
goto end;
}