From d24d208d1c9b952cc0c1fdcd1c30cb0150ad53ac Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 13 Feb 2008 02:43:33 -0500
Subject: [PATCH] Always use subject col when dragging messages

---
 program/js/list.js          |   21 ++++++++++++++-------
 program/steps/mail/func.inc |    1 +
 program/js/app.js           |    7 ++++++-
 3 files changed, 21 insertions(+), 8 deletions(-)

diff --git a/program/js/app.js b/program/js/app.js
index 07b42a5..20cd67b 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -146,6 +146,9 @@
           else
             this.message_list.focus();
           }
+          
+        if (this.env.coltypes)
+          this.set_message_coltypes(this.env.coltypes);
 
         // enable mail commands
         this.enable_command('list', 'checkmail', 'compose', 'add-contact', 'search', 'reset-search', true);
@@ -3183,8 +3186,10 @@
 
         cell.id = 'rcmHead'+col;
         }
+        
+      if (col == 'subject' && this.message_list)
+        this.message_list.subject_col = n+1;
       }
-
   };
 
   // create a table row in the message list
diff --git a/program/js/list.js b/program/js/list.js
index 3255c1a..b9750fa 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -32,8 +32,8 @@
   this.rows = [];
   this.selection = [];
   
+  this.subject_col = -1;
   this.shiftkey = false;
-
   this.multiselect = false;
   this.draggable = false;
   this.keyboard = false;
@@ -618,7 +618,7 @@
   
     // get subjects of selectedd messages
     var names = '';
-    var c, node, subject, obj;
+    var c, i, node, subject, obj;
     for(var n=0; n<this.selection.length; n++)
     {
       if (n>12)  // only show 12 lines
@@ -632,13 +632,20 @@
         obj = this.rows[this.selection[n]].obj;
         subject = '';
 
-        for(c=0; c<obj.childNodes.length; c++)
-          if (obj.childNodes[c].nodeName=='TD' && (node = obj.childNodes[c].firstChild) && (node.nodeType==3 || node.nodeName=='A'))
+        for(c=0, i=0; i<obj.childNodes.length; i++)
+        {
+          if (obj.childNodes[i].nodeName == 'TD')
           {
-            subject = node.nodeType==3 ? node.data : node.innerHTML;
-            names += (subject.length > 50 ? subject.substring(0, 50)+'...' : subject) + '<br />';
-            break;
+            if (((node = obj.childNodes[i].firstChild) && (node.nodeType==3 || node.nodeName=='A')) &&
+              (this.subject_col < 0 || (this.subject_col >= 0 && this.subject_col == c)))
+            {
+              subject = node.nodeType==3 ? node.data : node.innerHTML;
+              names += (subject.length > 50 ? subject.substring(0, 50)+'...' : subject) + '<br />';
+              break;
+            }
+            c++;
           }
+        }
       }
     }
 
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index b0d6417..6bee814 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -290,6 +290,7 @@
     $OUTPUT->set_env('attachmenticon', $skin_path . $attrib['attachmenticon']);
   
   $OUTPUT->set_env('messages', $a_js_message_arr);
+  $OUTPUT->set_env('coltypes', $a_show_cols);
   
   $OUTPUT->include_script('list.js');
   

--
Gitblit v1.9.1