Bugzilla – Attachment 185772 Details for
Bug 343447
extreme slowness ...
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Forgot Password
[patch]
Likely Fix
bnc-343447-evo-unread-count.patch (text/plain), 4.10 KB, created by
Forgotten User eDPGYP6_cn
on 2007-12-04 09:57:39 UTC
(
hide
)
Description:
Likely Fix
Filename:
MIME Type:
Creator:
Forgotten User eDPGYP6_cn
Created:
2007-12-04 09:57:39 UTC
Size:
4.10 KB
patch
obsolete
>Index: mail/em-folder-tree.c >=================================================================== >--- mail/em-folder-tree.c (revision 34631) >+++ mail/em-folder-tree.c (working copy) >@@ -162,7 +162,6 @@ > > static void emft_update_model_expanded_state (struct _EMFolderTreePrivate *priv, GtkTreeIter *iter, gboolean expanded); > >-static void emft_model_row_changed (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, EMFolderTree *emft); > static void emft_tree_row_activated (GtkTreeView *treeview, GtkTreePath *path, GtkTreeViewColumn *column, EMFolderTree *emft); > static gboolean emft_tree_test_collapse_row (GtkTreeView *treeview, GtkTreeIter *root, GtkTreePath *path, EMFolderTree *emft); > static void emft_tree_row_expanded (GtkTreeView *treeview, GtkTreeIter *root, GtkTreePath *path, EMFolderTree *emft); >@@ -546,7 +545,6 @@ > priv->treeview = folder_tree_new (emft, model); > gtk_widget_show ((GtkWidget *) priv->treeview); > >- g_signal_connect (priv->model, "row-changed", G_CALLBACK (emft_model_row_changed), emft); > g_signal_connect (priv->treeview, "row-expanded", G_CALLBACK (emft_tree_row_expanded), emft); > g_signal_connect (priv->treeview, "test-collapse-row", G_CALLBACK (emft_tree_test_collapse_row), emft); > g_signal_connect (priv->treeview, "row-activated", G_CALLBACK (emft_tree_row_activated), emft); >@@ -1859,30 +1857,6 @@ > } > > static void >-emft_model_row_changed (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, EMFolderTree *emft) >-{ >- GtkTreeIter parent_iter; >- GtkTreeIter child_iter = *iter; >- >- g_signal_handlers_block_by_func (model, emft_model_row_changed, emft); >- >- /* Folders are displayed with a bold weight to indicate that >- they contain unread messages. We signal that parent rows >- have changed here to update them. */ >- >- while (gtk_tree_model_iter_parent (model, &parent_iter, &child_iter)) { >- GtkTreePath *parent_path; >- >- parent_path = gtk_tree_model_get_path (model, &parent_iter); >- gtk_tree_model_row_changed (model, parent_path, &parent_iter); >- gtk_tree_path_free (parent_path); >- child_iter = parent_iter; >- } >- >- g_signal_handlers_unblock_by_func (model, emft_model_row_changed, emft); >-} >- >-static void > emft_tree_row_expanded (GtkTreeView *treeview, GtkTreeIter *root, GtkTreePath *tree_path, EMFolderTree *emft) > { > struct _EMFolderTreePrivate *priv = emft->priv; >Index: mail/em-folder-tree-model.c >=================================================================== >--- mail/em-folder-tree-model.c (revision 34631) >+++ mail/em-folder-tree-model.c (working copy) >@@ -251,6 +251,30 @@ > } > > static void >+emft_model_unread_count_changed (GtkTreeModel *model, GtkTreeIter *iter) >+{ >+ GtkTreeIter parent_iter; >+ GtkTreeIter child_iter = *iter; >+ >+ g_signal_handler_block (model, emft_model_unread_count_changed); >+ >+ /* Folders are displayed with a bold weight to indicate that >+ they contain unread messages. We signal that parent rows >+ have changed here to update them. */ >+ >+ while (gtk_tree_model_iter_parent (model, &parent_iter, &child_iter)) { >+ GtkTreePath *parent_path; >+ >+ parent_path = gtk_tree_model_get_path (model, &parent_iter); >+ gtk_tree_model_row_changed (model, parent_path, &parent_iter); >+ gtk_tree_path_free (parent_path); >+ child_iter = parent_iter; >+ } >+ >+ g_signal_handler_unblock (model, emft_model_unread_count_changed); >+} >+ >+static void > em_folder_tree_model_init (EMFolderTreeModel *model) > { > model->store_hash = g_hash_table_new_full ( >@@ -269,6 +293,7 @@ > model->account_hash = g_hash_table_new (g_direct_hash, g_direct_equal); > model->account_changed_id = g_signal_connect (model->accounts, "account-changed", G_CALLBACK (account_changed), model); > model->account_removed_id = g_signal_connect (model->accounts, "account-removed", G_CALLBACK (account_removed), model); >+ //g_signal_connect (model, "row-changed", G_CALLBACK (emft_model_unread_count_changed), NULL); > } > > static void >@@ -1255,6 +1280,9 @@ > gtk_tree_path_free (tree_path); > > gtk_tree_store_set ((GtkTreeStore *) model, &iter, COL_UINT_UNREAD, unread, -1); >+ >+ /* May be this is from where we should probagate unread count to parents etc. */ >+ emft_model_unread_count_changed (model, &iter); > } > >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
Actions:
View
|
Diff
Attachments on
bug 343447
: 185772 |
186766