diff options
-rw-r--r-- | shell/ChangeLog | 11 | ||||
-rw-r--r-- | shell/e-shell-view.c | 12 |
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; } |