From 5f3c7e3920c36641466950d4e70a595d59376a88 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 14 Jan 2014 14:53:40 -0500
Subject: [PATCH] Make sure unread_children count (and class) on thread root is always updated when read status of a child row is changed

---
 program/js/app.js |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index 3c54756..e89e85e 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -2054,7 +2054,6 @@
       if (preview && this.message_list && this.message_list.rows[id] && this.message_list.rows[id].unread && this.env.preview_pane_mark_read >= 0) {
         this.preview_read_timer = setTimeout(function() {
           ref.set_message(id, 'unread', false);
-          ref.update_thread_root(id, 'read');
           if (ref.env.unread_counts[ref.env.mailbox]) {
             ref.env.unread_counts[ref.env.mailbox] -= 1;
             ref.set_unread_count(ref.env.mailbox, ref.env.unread_counts[ref.env.mailbox], ref.env.mailbox == 'INBOX');
@@ -2560,8 +2559,11 @@
     if (!row)
       return false;
 
-    if (flag == 'unread')
+    if (flag == 'unread') {
+      if (row.unread != status)
+        this.update_thread_root(uid, status ? 'unread' : 'read');
       row.unread = status;
+    }
     else if(flag == 'deleted')
       row.deleted = status;
     else if (flag == 'replied')
@@ -2849,9 +2851,6 @@
       this.set_message(a_uids[i], 'unread', (flag == 'unread' ? true : false));
 
     this.http_post('mark', post_data, lock);
-
-    for (i=0; i<len; i++)
-      this.update_thread_root(a_uids[i], flag);
   };
 
   // set image to flagged or unflagged

--
Gitblit v1.9.1