+
+static void
+on_window_destroy (GtkObject *widget, gpointer userdata)
+{
+ ModestMainWindowPrivate *priv;
+
+ priv = MODEST_MAIN_WINDOW_GET_PRIVATE (widget);
+
+ if (priv->retrieving_banner_timeout > 0) {
+ g_source_remove (priv->retrieving_banner_timeout);
+ priv->retrieving_banner_timeout = 0;
+ }
+
+ if (priv->retrieving_banner != NULL) {
+ gtk_widget_destroy (priv->retrieving_banner);
+ priv->retrieving_banner = NULL;
+ }
+
+ if (priv->updating_banner_timeout > 0) {
+ g_source_remove (priv->updating_banner_timeout);
+ priv->updating_banner_timeout = 0;
+ }
+
+ if (priv->updating_banner != NULL) {
+ gtk_widget_destroy (priv->updating_banner);
+ priv->updating_banner = NULL;
+ }
+
+}
+
+static gboolean
+show_retrieving_banner (gpointer user_data)
+{
+ ModestMainWindowPrivate *priv = NULL;
+
+ priv = MODEST_MAIN_WINDOW_GET_PRIVATE (user_data);
+
+ if (priv->retrieving_banner == NULL) {
+
+ /* We're outside the main lock */
+ gdk_threads_enter ();
+ priv->retrieving_banner =
+ modest_platform_animation_banner (GTK_WIDGET (user_data), NULL,
+ _("mcen_ib_getting_items"));
+ gdk_threads_leave ();
+ }
+
+ /* Remove timeout */
+ priv->retrieving_banner_timeout = 0;
+ return FALSE;
+}