aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog8
-rw-r--r--shell/e-shell.c4
-rw-r--r--shell/e-splash.c7
3 files changed, 19 insertions, 0 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index 42d672a98e..db830dbd71 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,3 +1,11 @@
+2001-01-13 Miguel de Icaza <miguel@gnu.org>
+
+ * e-shell.c (e_shell_construct): Unref our copy, and then destroy.
+
+ * e-splash.c (e_splash_set_icon_highlight): Do not execute code if
+ we have been destroyed.
+ (e_splash_add_icon): ditto.
+
2001-01-12 Miguel de Icaza <miguel@gnu.org>
* e-splash.c (e_splash_construct): Ok, talked to Ettore. Going
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 99be4848bf..95556a4528 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -710,6 +710,9 @@ e_shell_construct (EShell *shell,
} else {
splash = e_splash_new ();
gtk_widget_show (splash);
+
+ /* Keep our own reference */
+ gtk_object_ref (GTK_OBJECT (splash));
}
while (gtk_events_pending ())
@@ -753,6 +756,7 @@ e_shell_construct (EShell *shell,
g_free (shortcut_path);
sleep (2);
+ gtk_widget_unref (splash);
gtk_widget_destroy (splash);
return TRUE;
diff --git a/shell/e-splash.c b/shell/e-splash.c
index 33f5412455..3ecb10fa99 100644
--- a/shell/e-splash.c
+++ b/shell/e-splash.c
@@ -321,6 +321,7 @@ e_splash_construct (ESplash *splash,
gtk_window_set_position (GTK_WINDOW (splash), GTK_WIN_POS_CENTER);
gtk_window_set_policy (GTK_WINDOW (splash), FALSE, FALSE, FALSE);
gtk_window_set_default_size (GTK_WINDOW (splash), image_width, image_height);
+
}
/**
@@ -369,6 +370,9 @@ e_splash_add_icon (ESplash *splash,
g_return_val_if_fail (E_IS_SPLASH (splash), 0);
g_return_val_if_fail (icon_pixbuf != NULL, 0);
+ if (GTK_OBJECT_DESTROYED (splash))
+ return 0;
+
priv = splash->priv;
icon = icon_new (splash, icon_pixbuf);
@@ -400,6 +404,9 @@ e_splash_set_icon_highlight (ESplash *splash,
g_return_if_fail (splash != NULL);
g_return_if_fail (E_IS_SPLASH (splash));
+ if (GTK_OBJECT_DESTROYED (splash))
+ return;
+
priv = splash->priv;
icon = (Icon *) g_list_nth (priv->icons, num)->data;