diff -Nrbu mail-notification-5.4/build/src/mn-evolution-folder-tree-server.c mail-notification-5.4-OK/build/src/mn-evolution-folder-tree-server.c --- mail-notification-5.4/build/src/mn-evolution-folder-tree-server.c 2008-05-22 19:47:48.000000000 +0400 +++ mail-notification-5.4-OK/build/src/mn-evolution-folder-tree-server.c 2010-10-12 16:50:15.000000000 +0400 @@ -25,7 +25,10 @@ #line 24 "src/mn-evolution-folder-tree-server.gob" #include +#include +#if !EDS_CHECK_VERSION(2,29,0) #include +#endif #include #include "mn-evolution-plugin.h" #include "mn-evolution.h" @@ -441,10 +444,17 @@ { #line 61 "src/mn-evolution-folder-tree-server.gob" +#if EDS_CHECK_VERSION(2,91,0) + selfp->session = e_mail_session_new(); + selfp->tree = em_folder_tree_new(selfp->session); +#elif EDS_CHECK_VERSION(2,29,0) + selfp->tree = em_folder_tree_new(); +#else EMFolderTreeModel *model; model = mail_component_peek_tree_model(mail_component_peek()); selfp->tree = em_folder_tree_new_with_model(model); +#endif selfp->plug = gtk_plug_new((GdkNativeWindow) selfp->id); gtk_container_add(GTK_CONTAINER(selfp->plug), selfp->tree); @@ -469,6 +479,10 @@ { #line 80 "src/mn-evolution-folder-tree-server.gob" +#if EDS_CHECK_VERSION(2,91,0) + g_object_unref(selfp->session); + selfp->session = NULL; +#endif g_signal_handlers_disconnect_by_func(selfp->plug, self_plug_destroy_h, self); }} #line 475 "mn-evolution-folder-tree-server.c" diff -Nrbu mail-notification-5.4/build/src/mn-evolution-server.c mail-notification-5.4-OK/build/src/mn-evolution-server.c --- mail-notification-5.4/build/src/mn-evolution-server.c 2008-05-22 19:47:48.000000000 +0400 +++ mail-notification-5.4-OK/build/src/mn-evolution-server.c 2010-10-12 16:50:40.000000000 +0400 @@ -27,12 +27,22 @@ #include #include #include +#include #include +#if EDS_CHECK_VERSION(2,29,0) +#include +#include +#else #include #include #include +#endif #include +#if EDS_CHECK_VERSION(2,91,0) +#include +#else #include +#endif #include #include "mn-evolution.h" #include "mn-evolution-folder-tree-server.h" @@ -391,10 +397,18 @@ info = g_new0(FolderInfo, 1); info->uri = g_strdup(uri); info->folder = folder; +#if EDS_CHECK_VERSION(2,31,0) + g_object_ref(folder); +#else camel_object_ref(folder); +#endif /* uncache the folder when it is deleted */ +#if EDS_CHECK_VERSION(2,31,0) + g_signal_connect(folder, "deleted", G_CALLBACK(self_folder_deleted_cb), info); +#else camel_object_hook_event(folder, "deleted", self_folder_deleted_cb, info); +#endif g_hash_table_replace(folders, info->uri, info); }} @@ -413,8 +427,13 @@ { #line 105 "src/mn-evolution-server.gob" +#if EDS_CHECK_VERSION(2,31,0) + g_signal_handlers_disconnect_by_func(info->folder, self_folder_deleted_cb, info); + g_object_unref(info->folder); +#else camel_object_unhook_event(info->folder, "deleted", self_folder_deleted_cb, info); camel_object_unref(info->folder); +#endif g_free(info->uri); g_free(info); }} @@ -461,7 +480,11 @@ if (info) { folder = info->folder; +#if EDS_CHECK_VERSION(2,31,0) + g_object_ref(folder); +#else camel_object_ref(folder); +#endif } } else @@ -469,7 +492,11 @@ if (! folder) { - folder = mail_tool_uri_to_folder(uri, 0, NULL); + folder = mail_tool_uri_to_folder(uri, 0, +#if EDS_CHECK_VERSION(2,91,0) + NULL, +#endif + NULL); if (folder) self_cache_folder(uri, folder); else @@ -595,14 +622,23 @@ for (i = 0; i < summary->len; i++) { +#if EDS_CHECK_VERSION(2,23,5) + char *uid = summary->pdata[i]; + CamelMessageInfo *info = camel_folder_get_message_info(folder, uid); +#else CamelMessageInfo *info = summary->pdata[i]; +#endif if ((camel_message_info_flags(info) & CAMEL_MESSAGE_SEEN) == 0) g_ptr_array_add(*ret, self_camel_message_info_to_dbus_struct(info)); } camel_folder_free_summary(folder, summary); +#if EDS_CHECK_VERSION(2,31,0) + g_object_unref(folder); +#else camel_object_unref(folder); +#endif } GDK_THREADS_LEAVE(); @@ -638,7 +674,11 @@ if (folder) { *ret = g_strdup(camel_folder_get_name(folder)); +#if EDS_CHECK_VERSION(2,31,0) + g_object_unref(folder); +#else camel_object_unref(folder); +#endif } GDK_THREADS_LEAVE(); @@ -673,6 +713,19 @@ folder = self_lookup_folder(folder_uri, err); if (folder) { +#if EDS_CHECK_VERSION(2,29,0) + EShell *shell; + EShellBackend *shell_backend; + GtkWidget *browser; + + shell = e_shell_get_default (); + shell_backend = e_shell_get_backend_by_name (shell, "mail"); + + browser = e_mail_browser_new (shell_backend); + e_mail_reader_set_folder (E_MAIL_READER (browser), folder, folder_uri); + e_mail_reader_set_message (E_MAIL_READER (browser), message_uid); + gtk_widget_show (browser); +#else GtkWidget *browser; /* modelled after Evolution's handleuri_got_folder() */ @@ -683,8 +736,13 @@ em_folder_view_set_folder((EMFolderView *) browser, folder, folder_uri); em_folder_view_set_message((EMFolderView *) browser, message_uid, FALSE); gtk_widget_show(((EMMessageBrowser *) browser)->window); +#endif +#if EDS_CHECK_VERSION(2,31,0) + g_object_unref(folder); +#else camel_object_unref(folder); +#endif } GDK_THREADS_LEAVE(); @@ -721,7 +779,11 @@ if (folder) { status = camel_folder_set_message_flags(folder, message_uid, flags, flags); +#if EDS_CHECK_VERSION(2,31,0) + g_object_unref(folder); +#else camel_object_unref(folder); +#endif if (! status) g_set_error(err, diff -Nrbu mail-notification-5.4/src/mn-evolution-plugin.c mail-notification-5.4-OK/src/mn-evolution-plugin.c --- mail-notification-5.4/src/mn-evolution-plugin.c 2008-05-22 19:45:35.000000000 +0400 +++ mail-notification-5.4-OK/src/mn-evolution-plugin.c 2010-10-12 16:50:15.000000000 +0400 @@ -204,7 +204,7 @@ } int -e_plugin_lib_enable (EPluginLib *ep, int enable) +e_plugin_lib_enable (EPlugin *ep, int enable) { static gboolean enabled = FALSE; GError *err = NULL; --- mail-notification-5.4/build/src/mn-evolution-folder-tree-server-private.h.orig 2010-11-13 13:55:01.571934066 +0100 +++ mail-notification-5.4/build/src/mn-evolution-folder-tree-server-private.h 2010-11-13 13:56:07.019487418 +0100 @@ -4,6 +4,10 @@ #define __MN_EVOLUTION_FOLDER_TREE_SERVER_PRIVATE_H__ #include "mn-evolution-folder-tree-server.h" +#include +#if EDS_CHECK_VERSION(2,91,0) +#include +#endif #ifdef __cplusplus extern "C" { @@ -23,6 +23,9 @@ #line 41 "src/mn-evolution-folder-tree-server.gob" GtkWidget * tree; #line 26 "mn-evolution-folder-tree-server-private.h" +#if EDS_CHECK_VERSION(2,91,0) + EMailSession * session; +#endif }; #ifdef __cplusplus