X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-folder-view.c;h=770fb2a2e7bc87661fa1a3907e3787d31a2241d1;hb=3f40a05130d6c83d8589b681ea8460050dba73e8;hp=c12bb687cd438eec6adb51690e9624aefd661a06;hpb=4da1be66b7094c669eaa575926d0ded915f03860;p=modest diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index c12bb68..770fb2a 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -220,6 +220,13 @@ struct _ModestFolderViewPrivate { TnyFolder *folder_to_select; /* folder to select after the next update */ + gulong changed_signal; + gulong account_inserted_signal; + gulong account_removed_signal; + gulong account_changed_signal; + gulong conf_key_signal; + gulong display_name_changed_signal; + /* not unref this object, its a singlenton */ ModestEmailClipboard *clipboard; @@ -246,8 +253,10 @@ struct _ModestFolderViewPrivate { GtkCellRenderer *messages_renderer; + gulong outbox_deleted_handler; + GSList *signal_handlers; - GdkColor *active_color; + GdkColor active_color; }; #define MODEST_FOLDER_VIEW_GET_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE((o), \ @@ -304,7 +313,7 @@ modest_folder_view_class_init (ModestFolderViewClass *klass) parent_class = g_type_class_peek_parent (klass); gobject_class->finalize = modest_folder_view_finalize; - gobject_class->finalize = modest_folder_view_dispose; + gobject_class->dispose = modest_folder_view_dispose; g_type_class_add_private (gobject_class, sizeof(ModestFolderViewPrivate)); @@ -571,20 +580,10 @@ format_compact_style (gchar **item_name, /* Remove mailbox prefix if any */ gchar *prefix = g_strconcat (mailbox, MODEST_FOLDER_PATH_SEPARATOR, NULL); if (g_str_has_prefix (*item_name, prefix)) { - gchar *new_item_name; - - new_item_name = g_strdup (*item_name + strlen (prefix)); - if (!g_ascii_strcasecmp (new_item_name, "Inbox")) { - g_free (new_item_name); - new_item_name = g_strdup (_("mcen_me_folder_inbox")); - } + gchar *new_item_name = g_strdup (*item_name + strlen (prefix)); g_free (*item_name); *item_name = new_item_name; } - } else if (!g_ascii_strcasecmp (*item_name, "Inbox")) { - - g_free (*item_name); - *item_name = g_strdup (_("mcen_me_folder_inbox")); } if (!is_special || multiaccount) { @@ -611,7 +610,14 @@ format_compact_style (gchar **item_name, buffer = g_string_append (buffer, *item_name); if (concat_folder_name) { - buffer = g_string_append (buffer, folder_name); + if (!is_special && folder_type == TNY_FOLDER_TYPE_DRAFTS) { + buffer = g_string_append (buffer, folder_name); + /* TODO: append a sensitive string to the remote drafts to + * be able to know it's the remote one */ +/* buffer = g_string_append (buffer, " (TODO:remote)"); */ + } else { + buffer = g_string_append (buffer, folder_name); + } } g_free (*item_name); g_object_unref (account); @@ -729,6 +735,13 @@ text_cell_data (GtkTreeViewColumn *column, } } + /* Convert INBOX */ + if (type == TNY_FOLDER_TYPE_INBOX && + g_str_has_suffix (fname, "Inbox")) { + g_free (item_name); + item_name = g_strdup (_("mcen_me_folder_inbox")); + } + if (!item_name) item_name = g_strdup ("unknown"); @@ -744,12 +757,13 @@ text_cell_data (GtkTreeViewColumn *column, if (item_name && item_weight) { /* Set the name in the treeview cell: */ - if (priv->cell_style == MODEST_FOLDER_VIEW_CELL_STYLE_COMPACT && item_weight == 800 && priv->active_color) { + if (priv->cell_style == MODEST_FOLDER_VIEW_CELL_STYLE_COMPACT && item_weight == 800 && + (priv->active_color.red != 0 || priv->active_color.blue != 0 || priv->active_color.green != 0)) { g_object_set (rendobj, "text", item_name, "weight-set", FALSE, "foreground-set", TRUE, - "foreground-gdk", priv->active_color, + "foreground-gdk", &(priv->active_color), NULL); } else { g_object_set (rendobj, @@ -853,17 +867,13 @@ messages_cell_data (GtkTreeViewColumn *column, drafts = FALSE; } - if (priv->cell_style == MODEST_FOLDER_VIEW_CELL_STYLE_COMPACT) { - if (number > 1) { - item_name = g_strdup_printf (drafts?_("mcen_ti_messages"):_("mcen_va_new_messages"), - number); - } else if (number == 1) { - item_name = g_strdup_printf (drafts?_("mcen_ti_message"):_("mcen_va_new_message"), - number); - } - } - - } + if ((priv->cell_style == MODEST_FOLDER_VIEW_CELL_STYLE_COMPACT) && (number > 0)) { + item_name = + g_strdup_printf (ngettext ((drafts) ? "mcen_ti_message" : "mcen_va_new_message", + (drafts) ? "mcen_ti_messages" : "mcen_va_new_messages", + number), number); + } + } if (!item_name) item_name = g_strdup (""); @@ -918,7 +928,7 @@ get_composite_icons (const gchar *icon_code, { ThreePixbufs *retval; - if (!*pixbuf) { + if (pixbuf && !*pixbuf) { GdkPixbuf *icon; icon = modest_platform_get_icon (icon_code, FOLDER_ICON_SIZE); if (icon) { @@ -928,23 +938,29 @@ get_composite_icons (const gchar *icon_code, } } - if (!*pixbuf_open && pixbuf && *pixbuf) + if (pixbuf_open && !*pixbuf_open && pixbuf && *pixbuf) *pixbuf_open = get_composite_pixbuf ("qgn_list_gene_fldr_exp", FOLDER_ICON_SIZE, *pixbuf); - if (!*pixbuf_close && pixbuf && *pixbuf) + if (pixbuf_close && !*pixbuf_close && pixbuf && *pixbuf) *pixbuf_close = get_composite_pixbuf ("qgn_list_gene_fldr_clp", FOLDER_ICON_SIZE, *pixbuf); retval = g_slice_new0 (ThreePixbufs); - if (*pixbuf) + if (pixbuf && *pixbuf) retval->pixbuf = g_object_ref (*pixbuf); - if (*pixbuf_open) + else + retval->pixbuf = NULL; + if (pixbuf_open && *pixbuf_open) retval->pixbuf_open = g_object_ref (*pixbuf_open); - if (*pixbuf_close) + else + retval->pixbuf_open = NULL; + if (pixbuf_close && *pixbuf_close) retval->pixbuf_close = g_object_ref (*pixbuf_close); + else + retval->pixbuf_close = NULL; return retval; } @@ -1241,7 +1257,7 @@ add_columns (GtkWidget *treeview) priv->messages_renderer = gtk_cell_renderer_text_new (); g_object_set (priv->messages_renderer, #ifdef MODEST_TOOLKIT_HILDON2 - "yalign", 0.0, + "yalign", 0.5, "ypad", MODEST_MARGIN_DEFAULT, "xpad", MODEST_MARGIN_DOUBLE, #else @@ -1288,6 +1304,7 @@ modest_folder_view_init (ModestFolderView *obj) priv->visible_account_id = NULL; priv->mailbox = NULL; priv->folder_to_select = NULL; + priv->outbox_deleted_handler = 0; priv->reexpand = TRUE; priv->signal_handlers = 0; @@ -1312,32 +1329,30 @@ modest_folder_view_init (ModestFolderView *obj) setup_drag_and_drop (GTK_TREE_VIEW(obj)); /* Connect signals */ - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT (obj), "key-press-event", - G_CALLBACK (on_key_pressed), NULL); + g_signal_connect (G_OBJECT (obj), + "key-press-event", + G_CALLBACK (on_key_pressed), NULL); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - (GObject*) modest_runtime_get_account_mgr (), - "display_name_changed", - G_CALLBACK (on_display_name_changed), - obj); + priv->display_name_changed_signal = + g_signal_connect (modest_runtime_get_account_mgr (), + "display_name_changed", + G_CALLBACK (on_display_name_changed), + obj); /* * Track changes in the local account name (in the device it * will be the device name) */ - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT(conf), - "key_changed", - G_CALLBACK(on_configuration_key_changed), - obj); + priv->conf_key_signal = g_signal_connect (G_OBJECT(conf), + "key_changed", + G_CALLBACK(on_configuration_key_changed), + obj); - priv->active_color = NULL; + gdk_color_parse ("000", &priv->active_color); update_style (obj); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT (obj), "notify::style", - G_CALLBACK (on_notify_style), (gpointer) obj); + g_signal_connect (G_OBJECT (obj), "notify::style", + G_CALLBACK (on_notify_style), (gpointer) obj); } static void @@ -1351,20 +1366,25 @@ tny_account_store_view_init (gpointer g, gpointer iface_data) static void modest_folder_view_dispose (GObject *obj) { - static gboolean disposed = FALSE; ModestFolderViewPrivate *priv; - if (disposed) - return; - priv = MODEST_FOLDER_VIEW_GET_PRIVATE (obj); #ifdef MODEST_TOOLKIT_HILDON2 - modest_signal_mgr_disconnect_all_and_destroy (priv->signal_handlers); + if (priv->signal_handlers) { + modest_signal_mgr_disconnect_all_and_destroy (priv->signal_handlers); + priv->signal_handlers = NULL; + } #endif /* Free external references */ if (priv->account_store) { + g_signal_handler_disconnect (G_OBJECT(priv->account_store), + priv->account_inserted_signal); + g_signal_handler_disconnect (G_OBJECT(priv->account_store), + priv->account_removed_signal); + g_signal_handler_disconnect (G_OBJECT(priv->account_store), + priv->account_changed_signal); g_object_unref (G_OBJECT(priv->account_store)); priv->account_store = NULL; } @@ -1388,34 +1408,62 @@ modest_folder_view_dispose (GObject *obj) g_object_unref (priv->list_to_move); priv->list_to_move = NULL; } + + G_OBJECT_CLASS(parent_class)->dispose (obj); } static void modest_folder_view_finalize (GObject *obj) { ModestFolderViewPrivate *priv; + GtkTreeSelection *sel; + TnyAccount *local_account; g_return_if_fail (obj); priv = MODEST_FOLDER_VIEW_GET_PRIVATE(obj); - if (priv->active_color) { - gdk_color_free (priv->active_color); - priv->active_color = NULL; - } - if (priv->timer_expander != 0) { g_source_remove (priv->timer_expander); priv->timer_expander = 0; } + local_account = (TnyAccount *) + modest_tny_account_store_get_local_folders_account (modest_runtime_get_account_store ()); + if (local_account) { + if (g_signal_handler_is_connected (local_account, + priv->outbox_deleted_handler)) + g_signal_handler_disconnect (local_account, + priv->outbox_deleted_handler); + g_object_unref (local_account); + } + + if (g_signal_handler_is_connected (modest_runtime_get_account_mgr (), + priv->display_name_changed_signal)) { + g_signal_handler_disconnect (modest_runtime_get_account_mgr (), + priv->display_name_changed_signal); + priv->display_name_changed_signal = 0; + } + + sel = gtk_tree_view_get_selection (GTK_TREE_VIEW(obj)); + if (sel) + g_signal_handler_disconnect (G_OBJECT(sel), priv->changed_signal); + g_free (priv->local_account_name); g_free (priv->visible_account_id); g_free (priv->mailbox); + if (priv->conf_key_signal) { + g_signal_handler_disconnect (modest_runtime_get_conf (), + priv->conf_key_signal); + priv->conf_key_signal = 0; + } + /* Clear hidding array created by cut operation */ _clear_hidding_filter (MODEST_FOLDER_VIEW (obj)); + gdk_color_parse ("000", &priv->active_color); + G_OBJECT_CLASS(parent_class)->finalize (obj); } @@ -1434,40 +1482,34 @@ modest_folder_view_set_account_store (TnyAccountStoreView *self, TnyAccountStore if (G_UNLIKELY (priv->account_store)) { - if (modest_signal_mgr_is_connected (priv->signal_handlers, - G_OBJECT (priv->account_store), - "account_inserted")) - priv->signal_handlers = modest_signal_mgr_disconnect (priv->signal_handlers, - G_OBJECT (priv->account_store), - "account_inserted"); - if (modest_signal_mgr_is_connected (priv->signal_handlers, - G_OBJECT (priv->account_store), - "account_removed")) - priv->signal_handlers = modest_signal_mgr_disconnect (priv->signal_handlers, - G_OBJECT (priv->account_store), - "account_removed"); - if (modest_signal_mgr_is_connected (priv->signal_handlers, - G_OBJECT (priv->account_store), - "account_changed")) - priv->signal_handlers = modest_signal_mgr_disconnect (priv->signal_handlers, - G_OBJECT (priv->account_store), - "account_changed"); + if (g_signal_handler_is_connected (G_OBJECT (priv->account_store), + priv->account_inserted_signal)) + g_signal_handler_disconnect (G_OBJECT (priv->account_store), + priv->account_inserted_signal); + if (g_signal_handler_is_connected (G_OBJECT (priv->account_store), + priv->account_removed_signal)) + g_signal_handler_disconnect (G_OBJECT (priv->account_store), + priv->account_removed_signal); + if (g_signal_handler_is_connected (G_OBJECT (priv->account_store), + priv->account_changed_signal)) + g_signal_handler_disconnect (G_OBJECT (priv->account_store), + priv->account_changed_signal); g_object_unref (G_OBJECT (priv->account_store)); } priv->account_store = g_object_ref (G_OBJECT (account_store)); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT(account_store), "account_removed", - G_CALLBACK (on_account_removed), self); + priv->account_removed_signal = + g_signal_connect (G_OBJECT(account_store), "account_removed", + G_CALLBACK (on_account_removed), self); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT(account_store), "account_inserted", - G_CALLBACK (on_account_inserted), self); + priv->account_inserted_signal = + g_signal_connect (G_OBJECT(account_store), "account_inserted", + G_CALLBACK (on_account_inserted), self); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT(account_store), "account_changed", - G_CALLBACK (on_account_changed), self); + priv->account_changed_signal = + g_signal_connect (G_OBJECT(account_store), "account_changed", + G_CALLBACK (on_account_changed), self); modest_folder_view_update_model (MODEST_FOLDER_VIEW (self), account_store); priv->reselect = FALSE; @@ -1538,10 +1580,12 @@ on_account_inserted (TnyAccountStore *account_store, for a merge folder */ if (TNY_IS_GTK_FOLDER_LIST_STORE (model) && MODEST_IS_TNY_LOCAL_FOLDERS_ACCOUNT (account)) { - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - (GObject*) account, "outbox-deleted", - G_CALLBACK (on_outbox_deleted_cb), - user_data); + + priv->outbox_deleted_handler = + g_signal_connect (account, + "outbox-deleted", + G_CALLBACK (on_outbox_deleted_cb), + user_data); } /* Refilter the model */ @@ -1695,10 +1739,10 @@ on_account_removed (TnyAccountStore *account_store, /* Disconnect the signal handler */ if (TNY_IS_GTK_FOLDER_LIST_STORE (model) && MODEST_IS_TNY_LOCAL_FOLDERS_ACCOUNT (account)) { - if (modest_signal_mgr_is_connected (priv->signal_handlers, (GObject*) account, "outbox-deleted")) - priv->signal_handlers = modest_signal_mgr_disconnect (priv->signal_handlers, - (GObject *) account, - "outbox-deleted"); + if (g_signal_handler_is_connected (account, + priv->outbox_deleted_handler)) + g_signal_handler_disconnect (account, + priv->outbox_deleted_handler); } /* Remove the account from the model */ @@ -1806,17 +1850,12 @@ modest_folder_view_new_full (TnyFolderStoreQuery *query, gboolean do_refresh) priv->do_refresh = do_refresh; sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(self)); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - (GObject*) sel, "changed", - G_CALLBACK (on_selection_changed), self); + priv->changed_signal = g_signal_connect (sel, "changed", + G_CALLBACK (on_selection_changed), self); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - self, "row-activated", - G_CALLBACK (on_row_activated), self); + g_signal_connect (self, "row-activated", G_CALLBACK (on_row_activated), self); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - self, "expose-event", - G_CALLBACK (modest_folder_view_on_map), NULL); + g_signal_connect (self, "expose-event", G_CALLBACK (modest_folder_view_on_map), NULL); return GTK_WIDGET(self); } @@ -2116,10 +2155,10 @@ filter_row (GtkTreeModel *model, GtkTreeIter *iter, gpointer data) ModestProtocolType protocol_type; protocol_type = modest_tny_account_get_protocol_type (TNY_ACCOUNT (instance)); - retval = !modest_protocol_registry_protocol_type_has_tag + retval = !modest_protocol_registry_protocol_type_has_tag (modest_runtime_get_protocol_registry (), protocol_type, - MODEST_PROTOCOL_REGISTRY_STORE_FORBID_MESSAGE_ADD); + MODEST_PROTOCOL_REGISTRY_STORE_FORBID_INCOMING_XFERS); } } @@ -2256,7 +2295,7 @@ modest_folder_view_update_model (ModestFolderView *self, { ModestFolderViewPrivate *priv; GtkTreeModel *model; - GtkTreeModel *filter_model = NULL, *sortable = NULL, *old_tny_model; + GtkTreeModel *filter_model = NULL, *sortable = NULL; g_return_val_if_fail (self && MODEST_IS_FOLDER_VIEW (self), FALSE); g_return_val_if_fail (account_store && MODEST_IS_TNY_ACCOUNT_STORE(account_store), @@ -2278,8 +2317,10 @@ modest_folder_view_update_model (ModestFolderView *self, #ifdef MODEST_TOOLKIT_HILDON2 TnyGtkFolderListStoreFlags flags; flags = TNY_GTK_FOLDER_LIST_STORE_FLAG_SHOW_PATH; - if (!priv->do_refresh) - flags &= TNY_GTK_FOLDER_LIST_STORE_FLAG_NO_REFRESH; + if (priv->do_refresh) + flags |= TNY_GTK_FOLDER_LIST_STORE_FLAG_DELAYED_REFRESH; + else + flags |= TNY_GTK_FOLDER_LIST_STORE_FLAG_NO_REFRESH; model = tny_gtk_folder_list_store_new_with_flags (NULL, flags); tny_gtk_folder_list_store_set_path_separator (TNY_GTK_FOLDER_LIST_STORE (model), @@ -2300,16 +2341,16 @@ modest_folder_view_update_model (ModestFolderView *self, acc_store = modest_runtime_get_account_store (); account = modest_tny_account_store_get_local_folders_account (acc_store); - if (modest_signal_mgr_is_connected (priv->signal_handlers, (GObject *) account, - "outbox-deleted")) - priv->signal_handlers = modest_signal_mgr_disconnect (priv->signal_handlers, - (GObject *) account, - "outbox-deleted"); + if (g_signal_handler_is_connected (account, + priv->outbox_deleted_handler)) + g_signal_handler_disconnect (account, + priv->outbox_deleted_handler); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - (GObject*) account, "outbox-deleted", - G_CALLBACK (on_outbox_deleted_cb), - self); + priv->outbox_deleted_handler = + g_signal_connect (account, + "outbox-deleted", + G_CALLBACK (on_outbox_deleted_cb), + self); g_object_unref (account); } @@ -2333,27 +2374,27 @@ modest_folder_view_update_model (ModestFolderView *self, self, NULL); + GtkTreeModel *old_tny_model = NULL; if (get_inner_models (self, NULL, NULL, &old_tny_model)) { - if (modest_signal_mgr_is_connected (priv->signal_handlers, (GObject *) old_tny_model, - "activity-changed")) + if (priv->signal_handlers > 0) { priv->signal_handlers = modest_signal_mgr_disconnect (priv->signal_handlers, - G_OBJECT (old_tny_model), + G_OBJECT (old_tny_model), "activity-changed"); + } } /* Set new model */ gtk_tree_view_set_model (GTK_TREE_VIEW(self), filter_model); #ifndef MODEST_TOOLKIT_HILDON2 - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT(filter_model), "row-inserted", - (GCallback) on_row_inserted_maybe_select_folder, self); + g_signal_connect (G_OBJECT(filter_model), "row-inserted", + (GCallback) on_row_inserted_maybe_select_folder, self); #endif #ifdef MODEST_TOOLKIT_HILDON2 priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, G_OBJECT (model), "activity-changed", - G_CALLBACK (on_activity_changed), + G_CALLBACK (on_activity_changed), self); #endif @@ -3408,19 +3449,16 @@ setup_drag_and_drop (GtkTreeView *self) #ifdef MODEST_TOOLKIT_HILDON2 return; #endif - ModestFolderViewPrivate *priv; - - priv = MODEST_FOLDER_VIEW_GET_PRIVATE (self); - gtk_drag_dest_set (GTK_WIDGET (self), GTK_DEST_DEFAULT_HIGHLIGHT, folder_view_drag_types, G_N_ELEMENTS (folder_view_drag_types), GDK_ACTION_MOVE | GDK_ACTION_COPY); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT (self), "drag_data_received", - G_CALLBACK (on_drag_data_received), NULL); + g_signal_connect (G_OBJECT (self), + "drag_data_received", + G_CALLBACK (on_drag_data_received), + NULL); /* Set up the treeview as a dnd source */ @@ -3430,17 +3468,20 @@ setup_drag_and_drop (GtkTreeView *self) G_N_ELEMENTS (folder_view_drag_types), GDK_ACTION_MOVE | GDK_ACTION_COPY); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT (self), "drag_motion", - G_CALLBACK (on_drag_motion), NULL); + g_signal_connect (G_OBJECT (self), + "drag_motion", + G_CALLBACK (on_drag_motion), + NULL); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT (self), "drag_data_get", - G_CALLBACK (on_drag_data_get), NULL); + g_signal_connect (G_OBJECT (self), + "drag_data_get", + G_CALLBACK (on_drag_data_get), + NULL); - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT (self), "drag_drop", - G_CALLBACK (drag_drop_cb), NULL); + g_signal_connect (G_OBJECT (self), + "drag_drop", + G_CALLBACK (drag_drop_cb), + NULL); } /* @@ -3898,10 +3939,10 @@ modest_folder_view_copy_model (ModestFolderView *folder_view_src, /* Set copied model */ gtk_tree_view_set_model (GTK_TREE_VIEW (folder_view_dst), new_filter_model); #ifndef MODEST_TOOLKIT_HILDON2 - priv->signal_handlers = modest_signal_mgr_connect (priv->signal_handlers, - G_OBJECT(new_filter_model), "row-inserted", - (GCallback) on_row_inserted_maybe_select_folder, - folder_view_dst); + dst_priv->signal_handlers = modest_signal_mgr_connect (dst_priv->signal_handlers, + G_OBJECT(new_filter_model), "row-inserted", + (GCallback) on_row_inserted_maybe_select_folder, + folder_view_dst); #endif #ifdef MODEST_TOOLKIT_HILDON2 if (new_tny_model) { @@ -4076,11 +4117,11 @@ update_style (ModestFolderView *self) NULL); pango_attr_list_unref (attr_list); } - if (priv->active_color) - gdk_color_free (priv->active_color); if (gtk_style_lookup_color (GTK_WIDGET (self)->style, "ActiveTextColor", &style_active_color)) { - priv->active_color = gdk_color_copy (&style_active_color); + priv->active_color = style_active_color; + } else { + gdk_color_parse ("000", &(priv->active_color)); } }