aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog8
-rw-r--r--shell/e-shell.c19
-rw-r--r--shell/e-splash.c6
3 files changed, 20 insertions, 13 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index b850372e89..ee33bb39e8 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,5 +1,13 @@
2003-04-02 Not Zed <NotZed@Ximian.com>
+ [#39467]
+
+ * e-shell.c (e_shell_construct): Change the splash logic slightly,
+ so that if we can't create the splash, we dont try and cast/use
+ it.
+ * e-splash.c (e_splash_new): dont use a g_return* for what could
+ be a valid (tho incorrect) runtime condition.
+
[#40590]
* e-config-upgrade.c (identity_map[]): Move the signature stuff to
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 687d34e708..826178413f 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -1252,7 +1252,7 @@ e_shell_construct (EShell *shell,
gboolean show_splash,
EShellStartupLineMode startup_line_mode)
{
- GtkWidget *splash;
+ GtkWidget *splash = NULL;
EShellPrivate *priv;
CORBA_Object corba_object;
gchar *shortcut_path;
@@ -1303,24 +1303,19 @@ e_shell_construct (EShell *shell,
if (bonobo_activation_active_server_register (iid, corba_object) != Bonobo_ACTIVATION_REG_SUCCESS)
return E_SHELL_CONSTRUCT_RESULT_CANNOTREGISTER;
- if (! show_splash) {
- splash = NULL;
- } else {
- splash = e_splash_new ();
+ if (show_splash
+ && (splash = e_splash_new ())) {
g_signal_connect (splash, "delete_event",
G_CALLBACK (gtk_widget_hide_on_delete), NULL);
gtk_widget_show (splash);
}
-
+
while (gtk_events_pending ())
gtk_main_iteration ();
priv->user_creatable_items_handler = e_shell_user_creatable_items_handler_new ();
- if (show_splash)
- setup_components (shell, E_SPLASH (splash));
- else
- setup_components (shell, NULL);
+ setup_components (shell, (ESplash *)splash);
/* Set up the shortcuts. */
@@ -1347,9 +1342,9 @@ e_shell_construct (EShell *shell,
/* Now that we have a local storage and all the interfaces set up, we
can tell the components we are here. */
- set_owner_on_components (shell, E_SPLASH (splash));
+ set_owner_on_components (shell, (ESplash *)splash);
- if (show_splash)
+ if (splash)
gtk_widget_destroy (splash);
if (e_shell_startup_wizard_create () == FALSE) {
diff --git a/shell/e-splash.c b/shell/e-splash.c
index a8a234fd75..a6bb79e98c 100644
--- a/shell/e-splash.c
+++ b/shell/e-splash.c
@@ -370,7 +370,11 @@ e_splash_new (void)
GdkPixbuf *splash_image_pixbuf;
splash_image_pixbuf = gdk_pixbuf_new_from_file (EVOLUTION_IMAGES "/splash.png", NULL);
- g_return_val_if_fail (splash_image_pixbuf != NULL, NULL);
+
+ if (splash_image_pixbuf == NULL) {
+ g_warning("Cannot find splash image: %s", EVOLUTION_IMAGES "/splash.png");
+ return NULL;
+ }
new = g_object_new (e_splash_get_type (), NULL);
e_splash_construct (new, splash_image_pixbuf);