X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-header-view.c;h=dffd7b8e7bc95f253b3c4a9506193eb67541fd52;hp=a24b4587152ee5261d633f54954cbccc4d8bd8b2;hb=0553c6bb55e67bd3451b3baeaa1c5d5334f859c5;hpb=f3a813cb451afaca780a03fdc8b04df47c59ca52 diff --git a/src/widgets/modest-header-view.c b/src/widgets/modest-header-view.c index a24b458..dffd7b8 100644 --- a/src/widgets/modest-header-view.c +++ b/src/widgets/modest-header-view.c @@ -1216,6 +1216,14 @@ on_focus_in (GtkWidget *self, return FALSE; } +static gboolean +idle_notify_added_headers (gpointer data) +{ + modest_platform_on_new_msg (); + + return FALSE; +} + static void folder_monitor_update (TnyFolderObserver *self, TnyFolderChange *change) @@ -1227,23 +1235,11 @@ folder_monitor_update (TnyFolderObserver *self, changed = tny_folder_change_get_changed (change); - if (changed & TNY_FOLDER_CHANGE_CHANGED_ADDED_HEADERS) { -/* TnyIterator *iter; */ -/* TnyList *list; */ -/* /\* The added headers *\/ */ -/* list = tny_simple_list_new (); */ -/* tny_folder_change_get_added_headers (change, list); */ -/* iter = tny_list_create_iterator (list); */ -/* while (!tny_iterator_is_done (iter)) */ -/* { */ -/* TnyHeader *header = TNY_HEADER (tny_iterator_get_current (iter)); */ -/* g_object_unref (G_OBJECT (header)); */ -/* tny_iterator_next (iter); */ -/* } */ -/* g_object_unref (G_OBJECT (iter)); */ -/* g_object_unref (G_OBJECT (list)); */ - modest_platform_on_new_msg (); - } + /* We need an idle because this function is called from within + a thread, so it could cause problems if the modest platform + code calls dbus for example */ + if (changed & TNY_FOLDER_CHANGE_CHANGED_ADDED_HEADERS) + g_idle_add (idle_notify_added_headers, NULL); g_mutex_unlock (priv->observers_lock); }