Index: roundcubemail/program/js/app.js
===================================================================
--- roundcubemail/program/js/app.js	(révision 4307)
+++ roundcubemail/program/js/app.js	(copie de travail)
@@ -1701,9 +1701,13 @@
       var action = flags.mbox == this.env.drafts_mailbox ? 'compose' : 'show';
       var uid_param = flags.mbox == this.env.drafts_mailbox ? '_draft_uid' : '_uid';
       cols.subject = '<a href="./?_task=mail&_action='+action+'&_mbox='+urlencode(flags.mbox)+'&'+uid_param+'='+uid+'"'+
-        ' onclick="return rcube_event.cancel(event)">'+cols.subject+'</a>';
+        ' id="link_subject'+uid + '" onclick="return rcube_event.cancel(event)" ' +
+        ' onmouseover=\'document.getElementById("subject'+uid+'").title =' +
+           ' document.getElementById("subject'+uid+'").clientWidth + ' + (message.depth + 1) + ' * 15 > ' +
+           ' document.getElementById("col_subject'+uid+'").clientWidth ? '+ 
+           ' document.getElementById("subject'+uid+'").innerHTML : "" \'' +
+        '><div id="subject'+uid+'">' + cols.subject + '</div></a>';
     }
-
     // add each submitted col
     for (var n in this.env.coltypes) {
       c = this.env.coltypes[n];
@@ -1735,8 +1739,10 @@
       }
       else if (c == 'threads')
         html = expando;
-      else if (c == 'subject')
+      else if (c == 'subject') {
+	col.id = "col_subject" + uid;
         html = tree + cols[c];
+ }
       else
         html = cols[c];
 
Index: roundcubemail/program/steps/mail/func.inc
===================================================================
--- roundcubemail/program/steps/mail/func.inc	(révision 4307)
+++ roundcubemail/program/steps/mail/func.inc	(copie de travail)
@@ -277,7 +277,7 @@
       if (in_array($col, array('from', 'to', 'cc', 'replyto')))
         $cont = Q(rcmail_address_string($header->$col, 3), 'show');
       else if ($col=='subject') {
-        $cont = abbreviate_string(trim($IMAP->decode_header($header->$col)), 160);
+        $cont = trim($IMAP->decode_header($header->$col));
         if (!$cont) $cont = rcube_label('nosubject');
         $cont = Q($cont);
       }
