From 065d7025ee2d8b585dc8643439a1c453bbf6636b Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Sat, 10 Sep 2011 03:42:17 -0400
Subject: [PATCH] - Fix setting title for truncated subject in IE (#1487128)

---
 CHANGELOG         |    1 +
 program/js/app.js |   22 +++++++++++++++++++++-
 2 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index c50dca6..399b91d 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix setting title for truncated subject in IE (#1487128)
 - Fix handling of links with IP address
 - Fix compacting folder resets message list filter (#1488076)
 - Fix displaying multipart/alternative messages with only one part (#1487938)
diff --git a/program/js/app.js b/program/js/app.js
index 6544fe8..0f17633 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -1771,8 +1771,11 @@
       }
       else if (c == 'threads')
         html = expando;
-      else if (c == 'subject')
+      else if (c == 'subject') {
+        if (bw.ie)
+          col.onmouseover = function() { rcube_webmail.long_subject_title_ie(this, message.depth+1); };
         html = tree + cols[c];
+      }
       else if (c == 'priority') {
         if (flags.prio > 0 && flags.prio < 6)
           html = '<span class="prio'+flags.prio+'">&nbsp;</span>';
@@ -6113,6 +6116,23 @@
   }
 };
 
+rcube_webmail.long_subject_title_ie = function(elem, indent)
+{
+  if (!elem.title) {
+    var $elem = $(elem),
+      txt = $elem.text(),
+      tmp = $('<span>').text(txt)
+        .css({'position': 'absolute', 'float': 'left', 'visibility': 'hidden',
+          'font-size': $elem.css('font-size'), 'font-weight': $elem.css('font-weight')})
+        .appendTo($('body')),
+      w = tmp.width();
+
+    tmp.remove();
+    if (w + indent * 15 > $elem.width())
+      elem.title = txt;
+  }
+};
+
 // copy event engine prototype
 rcube_webmail.prototype.addEventListener = rcube_event_engine.prototype.addEventListener;
 rcube_webmail.prototype.removeEventListener = rcube_event_engine.prototype.removeEventListener;

--
Gitblit v1.9.1