* Fixes a critical destroying a banner already destroyed
pmo-trunk-r5343
+static void
+updating_banner_destroyed (gpointer data,
+ GObject *where_the_object_was)
+{
+ ModestMainWindowPrivate *priv = NULL;
+
+ priv = MODEST_MAIN_WINDOW_GET_PRIVATE (data);
+
+ priv->updating_banner = NULL;
+}
+
static gboolean
show_updating_banner (gpointer user_data)
{
static gboolean
show_updating_banner (gpointer user_data)
{
priv->updating_banner =
modest_platform_animation_banner (GTK_WIDGET (user_data), NULL,
_CS ("ckdg_pb_updating"));
priv->updating_banner =
modest_platform_animation_banner (GTK_WIDGET (user_data), NULL,
_CS ("ckdg_pb_updating"));
+
+ /* We need this because banners in Maemo could be
+ destroyed by dialogs so we need to properly update
+ our reference to it */
+ g_object_weak_ref (G_OBJECT (priv->updating_banner),
+ updating_banner_destroyed,
+ user_data);
remove_banners (MODEST_MAIN_WINDOW (widget));
}
remove_banners (MODEST_MAIN_WINDOW (widget));
}
+static void
+retrieving_banner_destroyed (gpointer data,
+ GObject *where_the_object_was)
+{
+ ModestMainWindowPrivate *priv = NULL;
+
+ priv = MODEST_MAIN_WINDOW_GET_PRIVATE (data);
+
+ priv->retrieving_banner = NULL;
+}
+
static gboolean
show_retrieving_banner (gpointer user_data)
{
static gboolean
show_retrieving_banner (gpointer user_data)
{
priv->retrieving_banner =
modest_platform_animation_banner (GTK_WIDGET (user_data), NULL,
_("mcen_ib_getting_items"));
priv->retrieving_banner =
modest_platform_animation_banner (GTK_WIDGET (user_data), NULL,
_("mcen_ib_getting_items"));
+
+ /* We need this because banners in Maemo could be
+ destroyed by dialogs so we need to properly update
+ our reference to it */
+ g_object_weak_ref (G_OBJECT (priv->retrieving_banner),
+ retrieving_banner_destroyed,
+ user_data);
if (modest_protocol_info_protocol_is_store(protocol) &&
(protocol == MODEST_PROTOCOL_STORE_IMAP) ) {
if (modest_protocol_info_protocol_is_store(protocol) &&
(protocol == MODEST_PROTOCOL_STORE_IMAP) ) {
+ TnyPair *use_lsub, *check_all;
+
+ use_lsub = tny_pair_new (MODEST_ACCOUNT_OPTION_USE_LSUB, "");
+ check_all = tny_pair_new (MODEST_ACCOUNT_OPTION_CHECK_ALL, "");
/* Other connection options, needed for IMAP. */
tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account),
/* Other connection options, needed for IMAP. */
tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account),
- tny_pair_new (MODEST_ACCOUNT_OPTION_USE_LSUB, ""));
tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account),
tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account),
- tny_pair_new (MODEST_ACCOUNT_OPTION_CHECK_ALL, ""));
+ check_all);
+ g_object_unref (use_lsub);
+ g_object_unref (check_all);
}
username = modest_server_account_settings_get_username (server_settings);
}
username = modest_server_account_settings_get_username (server_settings);
priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (instance);
priv->queue = g_queue_new();
priv->current = NULL;
priv = MODEST_TNY_SEND_QUEUE_GET_PRIVATE (instance);
priv->queue = g_queue_new();
priv->current = NULL;
+ priv->outbox = NULL;
+ priv->sentbox = NULL;