aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell-view.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2001-10-29 16:07:23 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2001-10-29 16:07:23 +0800
commit5054beec4501b7c1ac4758cfffa6c9278b6cab59 (patch)
treed0ba39250e57b7b2e705ea54e04018acbc534082 /shell/e-shell-view.c
parent8e598e640e9cbc8fe42d5d017b4557d656f24c5b (diff)
downloadgsoc2013-evolution-5054beec4501b7c1ac4758cfffa6c9278b6cab59.tar.gz
gsoc2013-evolution-5054beec4501b7c1ac4758cfffa6c9278b6cab59.tar.zst
gsoc2013-evolution-5054beec4501b7c1ac4758cfffa6c9278b6cab59.zip
Ref the shell. (destroy): Unref the shell. (destroy): Free the
* e-shell-view.c (e_shell_view_construct): Ref the shell. (destroy): Unref the shell. (destroy): Free the delayed_selection. No need to call `cleanup_delayed_selection()' as the signal handler will have already be disconnected at this point [as we are using connect_while_alive()']. svn path=/trunk/; revision=14325
Diffstat (limited to 'shell/e-shell-view.c')
-rw-r--r--shell/e-shell-view.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c
index feeded1cdc..f50dcb685b 100644
--- a/shell/e-shell-view.c
+++ b/shell/e-shell-view.c
@@ -51,6 +51,8 @@
#include "widgets/misc/e-clipped-label.h"
#include "widgets/misc/e-bonobo-widget.h"
+#include "e-util/e-gtk-utils.h"
+
#include "evolution-shell-view.h"
#include "e-gray-bar.h"
@@ -90,9 +92,8 @@ struct _EShellViewPrivate {
/* Currently displayed URI. */
char *uri;
- /* delayed selection, used when a path doesn't exist in an
- EStorage. cleared when we're signaled with
- "folder_selected" */
+ /* Delayed selection, used when a path doesn't exist in an EStorage.
+ Cleared when we're signaled with "folder_selected". */
char *delayed_selection;
/* uri to go to at timeout */
@@ -1102,10 +1103,11 @@ destroy (GtkObject *object)
shell_view = E_SHELL_VIEW (object);
priv = shell_view->priv;
- cleanup_delayed_selection (shell_view);
-
gtk_object_unref (GTK_OBJECT (priv->tooltips));
+ if (priv->shell != NULL)
+ bonobo_object_unref (BONOBO_OBJECT (priv->shell));
+
if (priv->corba_interface != NULL)
bonobo_object_unref (BONOBO_OBJECT (priv->corba_interface));
@@ -1134,6 +1136,8 @@ destroy (GtkObject *object)
g_free (priv->set_folder_uri);
+ g_free (priv->delayed_selection);
+
g_free (priv);
(* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
@@ -1371,6 +1375,7 @@ e_shell_view_construct (EShellView *shell_view,
}
priv->shell = shell;
+ bonobo_object_ref (BONOBO_OBJECT (priv->shell));
gtk_signal_connect (GTK_OBJECT (view), "delete_event",
GTK_SIGNAL_FUNC (delete_event_cb), NULL);
@@ -2029,7 +2034,7 @@ e_shell_view_display_uri (EShellView *shell_view,
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,
- NULL, TRUE,
+ FALSE, TRUE,
GTK_OBJECT (shell_view));
retval = FALSE;
goto end;