From 1791a1e7a23c0aaf126ba099a73564e8c4e88cee Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Tue, 27 May 2014 11:39:26 -0400
Subject: [PATCH] Remove list row 'unfocused' state and keep 'selected' classes even when list loses focus. For visual distinguishing .focus tr.selected can be used

---
 program/js/list.js          |   22 +++-------------------
 skins/classic/mail.css      |   12 +++---------
 skins/larry/styles.css      |   15 ++++-----------
 skins/larry/addressbook.css |   10 ++++------
 4 files changed, 14 insertions(+), 45 deletions(-)

diff --git a/program/js/list.js b/program/js/list.js
index 59651b8..62f1b1c 100644
--- a/program/js/list.js
+++ b/program/js/list.js
@@ -393,15 +393,7 @@
   if (this.focused)
     return;
 
-  var n, id;
   this.focused = true;
-
-  for (n in this.selection) {
-    id = this.selection[n];
-    if (this.rows[id] && this.rows[id].obj) {
-      $(this.rows[id].obj).addClass('selected').removeClass('unfocused');
-    }
-  }
 
   if (e)
     rcube_event.cancel(e);
@@ -430,15 +422,7 @@
  */
 blur: function(e)
 {
-  var n, id;
   this.focused = false;
-  for (n in this.selection) {
-    id = this.selection[n];
-    if (this.rows[id] && this.rows[id].obj) {
-      $(this.rows[id].obj).removeClass('selected focused').addClass('unfocused');
-    }
-  }
-  
   $(this.list).removeClass('focus');
 },
 
@@ -1087,7 +1071,7 @@
       this.highlight_row(n, true, true);
     }
     else {
-      $(this.rows[n].obj).removeClass('selected').removeClass('unfocused').removeAttr('aria-selected');
+      $(this.rows[n].obj).removeClass('selected').removeAttr('aria-selected');
     }
   }
 
@@ -1144,7 +1128,7 @@
   else {
     for (n in this.selection)
       if (this.rows[this.selection[n]]) {
-        $(this.rows[this.selection[n]].obj).removeClass('selected').removeClass('unfocused').removeAttr('aria-selected');
+        $(this.rows[this.selection[n]].obj).removeClass('selected').removeAttr('aria-selected');
       }
 
     this.selection = [];
@@ -1223,7 +1207,7 @@
         a_post = this.selection.slice(p+1, this.selection.length);
 
       this.selection = a_pre.concat(a_post);
-      $(this.rows[id].obj).removeClass('selected').removeClass('unfocused').removeAttr('aria-selected');
+      $(this.rows[id].obj).removeClass('selected').removeAttr('aria-selected');
       if (!norecur && !this.rows[id].expanded)
         this.highlight_children(id, false);
     }
diff --git a/skins/classic/mail.css b/skins/classic/mail.css
index 43a658b..0a4653a 100644
--- a/skins/classic/mail.css
+++ b/skins/classic/mail.css
@@ -1060,21 +1060,15 @@
 .messagelist tr.selected td
 {
   color: #FFFFFF;
-  background-color: #CC3333;
-}
-
-.messagelist tr.unfocused td
-{
-  color: #FFFFFF;
   background-color: #929292;
 }
 
-.messagelist tr.selected td a
+.messagelist.focus tr.selected td
 {
-  color: #FFFFFF;
+  background-color: #CC3333;
 }
 
-.messagelist tr.unfocused td a
+.messagelist tr.selected td a
 {
   color: #FFFFFF;
 }
diff --git a/skins/larry/addressbook.css b/skins/larry/addressbook.css
index 75dc0d8..8350d0a 100644
--- a/skins/larry/addressbook.css
+++ b/skins/larry/addressbook.css
@@ -146,13 +146,12 @@
 	background-position: 4px -1603px;
 }
 
-#contacts-table .contact.selected td.name,
-#contacts-table .contact.unfocused td.name {
+#contacts-table .contact.selected td.name {
 	background-position: 6px -1627px;
 	font-weight: bold;
 }
 
-#contacts-table .contact.selected.focused td.name {
+#contacts-table.focus .contact.selected.focused td.name {
 	background-position: 4px -1627px;
 }
 
@@ -164,13 +163,12 @@
 	background-position: 4px -1555px;
 }
 
-#contacts-table .group.selected td.name,
-#contacts-table .group.unfocused td.name {
+#contacts-table .group.selected td.name {
 	background-position: 6px -1579px;
 	font-weight: bold;
 }
 
-#contacts-table .group.selected.focused td.name {
+#contacts-table.focus .group.selected.focused td.name {
 	background-position: 4px -1579px;
 }
 
diff --git a/skins/larry/styles.css b/skins/larry/styles.css
index e1dbeea..a842028 100644
--- a/skins/larry/styles.css
+++ b/skins/larry/styles.css
@@ -1224,7 +1224,6 @@
 .listbox .tablink.selected,
 .listbox .listitem.selected > a,
 .listbox .tablink.selected > a,
-.listing tbody tr.unfocused td,
 .listing tbody tr.selected td,
 .listing li.selected,
 .listing li.selected > a {
@@ -1577,6 +1576,10 @@
 
 .records-table tr.selected td {
 	color: #fff !important;
+	background-color: #4db0d2 !important;
+}
+
+.records-table.focus tr.selected td {
 	background: #019bc6;
 	background: -moz-linear-gradient(top, #019bc6 0%, #017cb4 100%);
 	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#019bc6), color-stop(100%,#017cb4));
@@ -1587,16 +1590,6 @@
 
 .records-table tr.selected td a,
 .records-table tr.selected td span {
-	color: #fff !important;
-}
-
-.records-table tr.unfocused td {
-	color: #fff !important;
-	background-color: #4db0d2 !important;
-}
-
-.records-table tr.unfocused td a,
-.records-table tr.unfocused td span {
 	color: #fff !important;
 }
 

--
Gitblit v1.9.1