Bug 1244473 - Part 8 - Shorten complex rules for download items the Library window. r=jaws draft
authorPaolo Amadini <paolo.mozmail@amadzone.org>
Thu, 04 Feb 2016 14:50:37 +0000
changeset 328915 918dfe2bbd07187e117ef884f2484d2044b777d0
parent 328914 b725b26f1fcc31aa3b566eea388e9872b86bf22f
child 513873 864f5b61077ad35a073fcc7638b885a4f4df3c25
push id10432
push userpaolo.mozmail@amadzone.org
push dateThu, 04 Feb 2016 15:40:22 +0000
reviewersjaws
bugs1244473
milestone47.0a1
Bug 1244473 - Part 8 - Shorten complex rules for download items the Library window. r=jaws
browser/themes/linux/downloads/allDownloadsViewOverlay.css
browser/themes/osx/downloads/allDownloadsViewOverlay.css
browser/themes/shared/downloads/allDownloadsViewOverlay.inc.css
browser/themes/windows/downloads/allDownloadsViewOverlay.css
--- a/browser/themes/linux/downloads/allDownloadsViewOverlay.css
+++ b/browser/themes/linux/downloads/allDownloadsViewOverlay.css
@@ -15,87 +15,86 @@
 }
 
 /*** Button icons ***/
 
 .downloadButton.downloadConfirmBlock,
 .downloadButton.downloadCancel {
   -moz-image-region: rect(0px, 16px, 16px, 0px);
 }
-richlistitem.download:hover > .downloadButton.downloadConfirmBlock,
-richlistitem.download:hover > .downloadButton.downloadCancel {
+@item@:hover .downloadButton.downloadConfirmBlock,
+@item@:hover .downloadButton.downloadCancel {
   -moz-image-region: rect(0px, 32px, 16px, 16px);
 }
-richlistitem.download:hover > .downloadButton.downloadConfirmBlock:hover,
-richlistitem.download:hover > .downloadButton.downloadCancel:hover {
+@item@:hover .downloadButton.downloadConfirmBlock:hover,
+@item@:hover .downloadButton.downloadCancel:hover {
   -moz-image-region: rect(0px, 48px, 16px, 32px);
 }
-richlistitem.download:hover > .downloadButton.downloadConfirmBlock:active,
-richlistitem.download:hover > .downloadButton.downloadCancel:active {
+@item@:hover .downloadButton.downloadConfirmBlock:active,
+@item@:hover .downloadButton.downloadCancel:active {
   -moz-image-region: rect(0px, 64px, 16px, 48px);
 }
-richlistitem.download[selected] > .downloadButton.downloadConfirmBlock,
-richlistitem.download[selected] > .downloadButton.downloadCancel {
+@itemFocused@ .downloadButton.downloadConfirmBlock,
+@itemFocused@ .downloadButton.downloadCancel {
   -moz-image-region: rect(0px, 80px, 16px, 64px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadConfirmBlock,
-richlistitem.download:hover[selected] > .downloadButton.downloadCancel {
+@itemFocused@:hover .downloadButton.downloadConfirmBlock,
+@itemFocused@:hover .downloadButton.downloadCancel {
   -moz-image-region: rect(0px, 96px, 16px, 80px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadConfirmBlock:hover,
-richlistitem.download:hover[selected] > .downloadButton.downloadCancel:hover {
+@itemFocused@:hover .downloadButton.downloadConfirmBlock:hover,
+@itemFocused@:hover .downloadButton.downloadCancel:hover {
   -moz-image-region: rect(0px, 112px, 16px, 96px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadConfirmBlock:active,
-richlistitem.download:hover[selected] > .downloadButton.downloadCancel:active {
+@itemFocused@:hover .downloadButton.downloadConfirmBlock:active,
+@itemFocused@:hover .downloadButton.downloadCancel:active {
   -moz-image-region: rect(0px, 128px, 16px, 112px);
 }
 
 .downloadButton.downloadShow {
   -moz-image-region: rect(16px, 16px, 32px, 0px);
 }
-richlistitem.download:hover > .downloadButton.downloadShow {
+@item@:hover .downloadButton.downloadShow {
   -moz-image-region: rect(16px, 32px, 32px, 16px);
 }
-richlistitem.download:hover > .downloadButton.downloadShow:hover {
+@item@:hover .downloadButton.downloadShow:hover {
   -moz-image-region: rect(16px, 48px, 32px, 32px);
 }
-richlistitem.download:hover > .downloadButton.downloadShow:active {
+@item@:hover .downloadButton.downloadShow:active {
   -moz-image-region: rect(16px, 64px, 32px, 48px);
 }
-richlistitem.download[selected] > .downloadButton.downloadShow {
+@itemFocused@ .downloadButton.downloadShow {
   -moz-image-region: rect(16px, 80px, 32px, 64px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadShow {
+@itemFocused@:hover .downloadButton.downloadShow {
   -moz-image-region: rect(16px, 96px, 32px, 80px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadShow:hover {
+@itemFocused@:hover .downloadButton.downloadShow:hover {
   -moz-image-region: rect(16px, 112px, 32px, 96px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadShow:active {
+@itemFocused@:hover .downloadButton.downloadShow:active {
   -moz-image-region: rect(16px, 128px, 32px, 112px);
 }
 
 .downloadButton.downloadRetry {
   -moz-image-region: rect(32px, 16px, 48px, 0px);
 }
-richlistitem.download:hover > .downloadButton.downloadRetry {
+@item@:hover .downloadButton.downloadRetry {
   -moz-image-region: rect(32px, 32px, 48px, 16px);
 }
-richlistitem.download:hover > .downloadButton.downloadRetry:hover {
+@item@:hover .downloadButton.downloadRetry:hover {
   -moz-image-region: rect(32px, 48px, 48px, 32px);
 }
-richlistitem.download:hover > .downloadButton.downloadRetry:active {
+@item@:hover .downloadButton.downloadRetry:active {
   -moz-image-region: rect(32px, 64px, 48px, 48px);
 }
-richlistitem.download[selected] > .downloadButton.downloadRetry {
+@itemFocused@ .downloadButton.downloadRetry {
   -moz-image-region: rect(32px, 80px, 48px, 64px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadRetry {
+@itemFocused@:hover .downloadButton.downloadRetry {
   -moz-image-region: rect(32px, 96px, 48px, 80px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadRetry:hover {
+@itemFocused@:hover .downloadButton.downloadRetry:hover {
   -moz-image-region: rect(32px, 112px, 48px, 96px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadRetry:active {
+@itemFocused@:hover .downloadButton.downloadRetry:active {
   -moz-image-region: rect(32px, 128px, 48px, 112px);
 }
-
--- a/browser/themes/osx/downloads/allDownloadsViewOverlay.css
+++ b/browser/themes/osx/downloads/allDownloadsViewOverlay.css
@@ -11,179 +11,179 @@
 }
 
 /*** Button icons ***/
 
 .downloadButton.downloadConfirmBlock,
 .downloadButton.downloadCancel {
   -moz-image-region: rect(0px, 16px, 16px, 0px);
 }
-richlistitem.download:hover > .downloadButton.downloadConfirmBlock,
-richlistitem.download:hover > .downloadButton.downloadCancel {
+@item@:hover .downloadButton.downloadConfirmBlock,
+@item@:hover .downloadButton.downloadCancel {
   -moz-image-region: rect(0px, 32px, 16px, 16px);
 }
-richlistitem.download:hover > .downloadButton.downloadConfirmBlock:hover,
-richlistitem.download:hover > .downloadButton.downloadCancel:hover {
+@item@:hover .downloadButton.downloadConfirmBlock:hover,
+@item@:hover .downloadButton.downloadCancel:hover {
   -moz-image-region: rect(0px, 48px, 16px, 32px);
 }
-richlistitem.download:hover > .downloadButton.downloadConfirmBlock:active,
-richlistitem.download:hover > .downloadButton.downloadCancel:active {
+@item@:hover .downloadButton.downloadConfirmBlock:active,
+@item@:hover .downloadButton.downloadCancel:active {
   -moz-image-region: rect(0px, 64px, 16px, 48px);
 }
-richlistitem.download[selected] > .downloadButton.downloadConfirmBlock,
-richlistitem.download[selected] > .downloadButton.downloadCancel {
+@itemFocused@ .downloadButton.downloadConfirmBlock,
+@itemFocused@ .downloadButton.downloadCancel {
   -moz-image-region: rect(0px, 80px, 16px, 64px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadConfirmBlock,
-richlistitem.download:hover[selected] > .downloadButton.downloadCancel {
+@itemFocused@:hover .downloadButton.downloadConfirmBlock,
+@itemFocused@:hover .downloadButton.downloadCancel {
   -moz-image-region: rect(0px, 96px, 16px, 80px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadConfirmBlock:hover,
-richlistitem.download:hover[selected] > .downloadButton.downloadCancel:hover {
+@itemFocused@:hover .downloadButton.downloadConfirmBlock:hover,
+@itemFocused@:hover .downloadButton.downloadCancel:hover {
   -moz-image-region: rect(0px, 112px, 16px, 96px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadConfirmBlock:active,
-richlistitem.download:hover[selected] > .downloadButton.downloadCancel:active {
+@itemFocused@:hover .downloadButton.downloadConfirmBlock:active,
+@itemFocused@:hover .downloadButton.downloadCancel:active {
   -moz-image-region: rect(0px, 128px, 16px, 112px);
 }
 
 .downloadButton.downloadShow {
   -moz-image-region: rect(16px, 16px, 32px, 0px);
 }
-richlistitem.download:hover > .downloadButton.downloadShow {
+@item@:hover .downloadButton.downloadShow {
   -moz-image-region: rect(16px, 32px, 32px, 16px);
 }
-richlistitem.download:hover > .downloadButton.downloadShow:hover {
+@item@:hover .downloadButton.downloadShow:hover {
   -moz-image-region: rect(16px, 48px, 32px, 32px);
 }
-richlistitem.download:hover > .downloadButton.downloadShow:active {
+@item@:hover .downloadButton.downloadShow:active {
   -moz-image-region: rect(16px, 64px, 32px, 48px);
 }
-richlistitem.download[selected] > .downloadButton.downloadShow {
+@itemFocused@ .downloadButton.downloadShow {
   -moz-image-region: rect(16px, 80px, 32px, 64px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadShow {
+@itemFocused@:hover .downloadButton.downloadShow {
   -moz-image-region: rect(16px, 96px, 32px, 80px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadShow:hover {
+@itemFocused@:hover .downloadButton.downloadShow:hover {
   -moz-image-region: rect(16px, 112px, 32px, 96px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadShow:active {
+@itemFocused@:hover .downloadButton.downloadShow:active {
   -moz-image-region: rect(16px, 128px, 32px, 112px);
 }
 
 .downloadButton.downloadRetry {
   -moz-image-region: rect(32px, 16px, 48px, 0px);
 }
-richlistitem.download:hover > .downloadButton.downloadRetry {
+@item@:hover .downloadButton.downloadRetry {
   -moz-image-region: rect(32px, 32px, 48px, 16px);
 }
-richlistitem.download:hover > .downloadButton.downloadRetry:hover {
+@item@:hover .downloadButton.downloadRetry:hover {
   -moz-image-region: rect(32px, 48px, 48px, 32px);
 }
-richlistitem.download:hover > .downloadButton.downloadRetry:active {
+@item@:hover .downloadButton.downloadRetry:active {
   -moz-image-region: rect(32px, 64px, 48px, 48px);
 }
-richlistitem.download[selected] > .downloadButton.downloadRetry {
+@itemFocused@ .downloadButton.downloadRetry {
   -moz-image-region: rect(32px, 80px, 48px, 64px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadRetry {
+@itemFocused@:hover .downloadButton.downloadRetry {
   -moz-image-region: rect(32px, 96px, 48px, 80px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadRetry:hover {
+@itemFocused@:hover .downloadButton.downloadRetry:hover {
   -moz-image-region: rect(32px, 112px, 48px, 96px);
 }
-richlistitem.download:hover[selected] > .downloadButton.downloadRetry:active {
+@itemFocused@:hover .downloadButton.downloadRetry:active {
   -moz-image-region: rect(32px, 128px, 48px, 112px);
 }
 
 @media (min-resolution: 2dppx) {
   .downloadButton {
     list-style-image: url("chrome://browser/skin/downloads/buttons@2x.png");
   }
   .downloadButton > .button-box > .button-icon {
     width: 16px;
     height: 16px;
   }
 
   .downloadButton.downloadConfirmBlock,
   .downloadButton.downloadCancel {
      -moz-image-region: rect(0px, 32px, 32px, 0px);
   }
-  richlistitem.download:hover > .downloadButton.downloadConfirmBlock,
-  richlistitem.download:hover > .downloadButton.downloadCancel {
+  @item@:hover .downloadButton.downloadConfirmBlock,
+  @item@:hover .downloadButton.downloadCancel {
     -moz-image-region: rect(0px, 64px, 32px, 32px);
   }
-  richlistitem.download:hover > .downloadButton.downloadConfirmBlock:hover,
-  richlistitem.download:hover > .downloadButton.downloadCancel:hover {
+  @item@:hover .downloadButton.downloadConfirmBlock:hover,
+  @item@:hover .downloadButton.downloadCancel:hover {
     -moz-image-region: rect(0px, 96px, 32px, 64px);
   }
-  richlistitem.download:hover > .downloadButton.downloadConfirmBlock:active,
-  richlistitem.download:hover > .downloadButton.downloadCancel:active {
+  @item@:hover .downloadButton.downloadConfirmBlock:active,
+  @item@:hover .downloadButton.downloadCancel:active {
     -moz-image-region: rect(0px, 128px, 32px, 96px);
   }
-  richlistitem.download[selected] > .downloadButton.downloadConfirmBlock,
-  richlistitem.download[selected] > .downloadButton.downloadCancel {
+  @itemFocused@ .downloadButton.downloadConfirmBlock,
+  @itemFocused@ .downloadButton.downloadCancel {
     -moz-image-region: rect(0px, 160px, 32px, 128px);
   }
-  richlistitem.download:hover[selected] > .downloadButton.downloadConfirmBlock,
-  richlistitem.download:hover[selected] > .downloadButton.downloadCancel {
+  @itemFocused@:hover .downloadButton.downloadConfirmBlock,
+  @itemFocused@:hover .downloadButton.downloadCancel {
     -moz-image-region: rect(0px, 192px, 32px, 160px);
   }
-  richlistitem.download:hover[selected] > .downloadButton.downloadConfirmBlock:hover,
-  richlistitem.download:hover[selected] > .downloadButton.downloadCancel:hover {
+  @itemFocused@:hover .downloadButton.downloadConfirmBlock:hover,
+  @itemFocused@:hover .downloadButton.downloadCancel:hover {
     -moz-image-region: rect(0px, 224px, 32px, 192px);
   }
-  richlistitem.download:hover[selected] > .downloadButton.downloadConfirmBlock:active,
-  richlistitem.download:hover[selected] > .downloadButton.downloadCancel:active {
+  @itemFocused@:hover .downloadButton.downloadConfirmBlock:active,
+  @itemFocused@:hover .downloadButton.downloadCancel:active {
     -moz-image-region: rect(0px, 256px, 32px, 224px);
   }
 
   .downloadButton.downloadShow {
     -moz-image-region: rect(32px, 32px, 64px, 0px);
   }
-  richlistitem.download:hover > .downloadButton.downloadShow {
+  @item@:hover .downloadButton.downloadShow {
     -moz-image-region: rect(32px, 64px, 64px, 32px);
   }
-  richlistitem.download:hover > .downloadButton.downloadShow:hover {
+  @item@:hover .downloadButton.downloadShow:hover {
     -moz-image-region: rect(32px, 96px, 64px, 64px);
   }
-  richlistitem.download:hover > .downloadButton.downloadShow:active {
+  @item@:hover .downloadButton.downloadShow:active {
     -moz-image-region: rect(32px, 128px, 64px, 96px);
   }
-  richlistitem.download[selected] > .downloadButton.downloadShow {
+  @itemFocused@ .downloadButton.downloadShow {
     -moz-image-region: rect(32px, 160px, 64px, 128px);
   }
-  richlistitem.download:hover[selected] > .downloadButton.downloadShow {
+  @itemFocused@:hover .downloadButton.downloadShow {
     -moz-image-region: rect(32px, 192px, 64px, 160px);
   }
-  richlistitem.download:hover[selected] > .downloadButton.downloadShow:hover {
+  @itemFocused@:hover .downloadButton.downloadShow:hover {
     -moz-image-region: rect(32px, 224px, 64px, 192px);
   }
-  richlistitem.download:hover[selected] > .downloadButton.downloadShow:active {
+  @itemFocused@:hover .downloadButton.downloadShow:active {
     -moz-image-region: rect(32px, 256px, 64px, 224px);
   }
 
   .downloadButton.downloadRetry {
     -moz-image-region: rect(64px, 32px, 96px, 0px);
   }
-  richlistitem.download:hover > .downloadButton.downloadRetry {
+  @item@:hover .downloadButton.downloadRetry {
     -moz-image-region: rect(64px, 64px, 96px, 32px);
   }
-  richlistitem.download:hover > .downloadButton.downloadRetry:hover {
+  @item@:hover .downloadButton.downloadRetry:hover {
     -moz-image-region: rect(64px, 96px, 96px, 64px);
   }
-  richlistitem.download:hover > .downloadButton.downloadRetry:active {
+  @item@:hover .downloadButton.downloadRetry:active {
     -moz-image-region: rect(64px, 128px, 96px, 96px);
   }
-  richlistitem.download[selected] > .downloadButton.downloadRetry {
+  @itemFocused@ .downloadButton.downloadRetry {
     -moz-image-region: rect(64px, 160px, 96px, 128px);
   }
-  richlistitem.download:hover[selected] > .downloadButton.downloadRetry {
+  @itemFocused@:hover .downloadButton.downloadRetry {
     -moz-image-region: rect(64px, 192px, 96px, 160px);
   }
-  richlistitem.download:hover[selected] > .downloadButton.downloadRetry:hover {
+  @itemFocused@:hover .downloadButton.downloadRetry:hover {
     -moz-image-region: rect(64px, 224px, 96px, 192px);
   }
-  richlistitem.download:hover[selected] > .downloadButton.downloadRetry:active {
+  @itemFocused@:hover .downloadButton.downloadRetry:active {
     -moz-image-region: rect(64px, 256px, 96px, 224px);
   }
-}
\ No newline at end of file
+}
--- a/browser/themes/shared/downloads/allDownloadsViewOverlay.inc.css
+++ b/browser/themes/shared/downloads/allDownloadsViewOverlay.inc.css
@@ -1,12 +1,17 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
+%filter substitution
+
+%define item richlistitem.download
+%define itemFocused @item@[selected]
+
 /*** View and outer controls ***/
 
 #downloadsRichListBox {
   /** The default listbox appearance comes with an unwanted margin. **/
   -moz-appearance: none;
   margin: 0;
 }
 
--- a/browser/themes/windows/downloads/allDownloadsViewOverlay.css
+++ b/browser/themes/windows/downloads/allDownloadsViewOverlay.css
@@ -18,17 +18,17 @@
     -moz-appearance: menuitem is almost right, but the hover effect is not
     transparent and is lighter than desired.
 
     Copied from the autocomplete richlistbox styling in
     toolkit/themes/windows/global/autocomplete.css
 
     This styling should be kept in sync with the style from the above file.
     */
-    #downloadsRichListBox > richlistitem.download[selected] {
+    @itemFocused@ {
       color: inherit;
       background-color: transparent;
       /* four gradients for the bevel highlights on each edge, one for blue background */
       background-image:
         linear-gradient(to bottom, rgba(255,255,255,0.9) 3px, transparent 3px),
         linear-gradient(to right, rgba(255,255,255,0.5) 3px, transparent 3px),
         linear-gradient(to left, rgba(255,255,255,0.5) 3px, transparent 3px),
         linear-gradient(to top, rgba(255,255,255,0.4) 3px, transparent 3px),
@@ -43,109 +43,91 @@
 }
 
 /*** Button icons ***/
 
 .downloadButton.downloadConfirmBlock,
 .downloadButton.downloadCancel {
   -moz-image-region: rect(0px, 16px, 16px, 0px);
 }
-
-richlistitem.download:hover > .downloadButton.downloadConfirmBlock,
-richlistitem.download:hover > .downloadButton.downloadCancel {
-   -moz-image-region: rect(0px, 32px, 16px, 16px);
+@item@:hover .downloadButton.downloadConfirmBlock,
+@item@:hover .downloadButton.downloadCancel {
+  -moz-image-region: rect(0px, 32px, 16px, 16px);
 }
-
-richlistitem.download:hover > .downloadButton.downloadConfirmBlock:hover,
-richlistitem.download:hover > .downloadButton.downloadCancel:hover {
+@item@:hover .downloadButton.downloadConfirmBlock:hover,
+@item@:hover .downloadButton.downloadCancel:hover {
   -moz-image-region: rect(0px, 48px, 16px, 32px);
 }
-
-richlistitem.download:hover > .downloadButton.downloadConfirmBlock:active,
-richlistitem.download:hover > .downloadButton.downloadCancel:active {
+@item@:hover .downloadButton.downloadConfirmBlock:active,
+@item@:hover .downloadButton.downloadCancel:active {
   -moz-image-region: rect(0px, 64px, 16px, 48px);
 }
 
 .downloadButton.downloadShow {
   -moz-image-region: rect(16px, 16px, 32px, 0px);
 }
-
-richlistitem.download:hover > .downloadButton.downloadShow {
-   -moz-image-region: rect(16px, 32px, 32px, 16px);
+@item@:hover .downloadButton.downloadShow {
+  -moz-image-region: rect(16px, 32px, 32px, 16px);
 }
-
-richlistitem.download:hover > .downloadButton.downloadShow:hover {
+@item@:hover .downloadButton.downloadShow:hover {
   -moz-image-region: rect(16px, 48px, 32px, 32px);
 }
-
-richlistitem.download:hover > .downloadButton.downloadShow:active {
+@item@:hover .downloadButton.downloadShow:active {
   -moz-image-region: rect(16px, 64px, 32px, 48px);
 }
 
 .downloadButton.downloadRetry {
   -moz-image-region: rect(32px, 16px, 48px, 0px);
 }
-
-richlistitem.download:hover > .downloadButton.downloadRetry {
-   -moz-image-region: rect(32px, 32px, 48px, 16px);
+@item@:hover .downloadButton.downloadRetry {
+  -moz-image-region: rect(32px, 32px, 48px, 16px);
 }
-
-richlistitem.download:hover > .downloadButton.downloadRetry:hover {
+@item@:hover .downloadButton.downloadRetry:hover {
   -moz-image-region: rect(32px, 48px, 48px, 32px);
 }
-
-richlistitem.download:hover > .downloadButton.downloadRetry:active {
+@item@:hover .downloadButton.downloadRetry:active {
   -moz-image-region: rect(32px, 64px, 48px, 48px);
 }
 
 @media (-moz-os-version: windows-xp) {
-  richlistitem.download[selected] > .downloadButton.downloadConfirmBlock,
-  richlistitem.download[selected] > .downloadButton.downloadCancel {
+  @itemFocused@ .downloadButton.downloadConfirmBlock,
+  @itemFocused@ .downloadButton.downloadCancel {
     -moz-image-region: rect(0px, 80px, 16px, 64px);
   }
-
-  richlistitem.download[selected]:hover > .downloadButton.downloadConfirmBlock,
-  richlistitem.download[selected]:hover > .downloadButton.downloadCancel {
+  @itemFocused@:hover .downloadButton.downloadConfirmBlock,
+  @itemFocused@:hover .downloadButton.downloadCancel {
     -moz-image-region: rect(0px, 96px, 16px, 80px);
   }
-
-  richlistitem.download[selected]:hover > .downloadButton.downloadConfirmBlock:hover,
-  richlistitem.download[selected]:hover > .downloadButton.downloadCancel:hover {
+  @itemFocused@:hover .downloadButton.downloadConfirmBlock:hover,
+  @itemFocused@:hover .downloadButton.downloadCancel:hover {
     -moz-image-region: rect(0px, 112px, 16px, 96px);
   }
-
-  richlistitem.download[selected]:hover > .downloadButton.downloadConfirmBlock:active,
-  richlistitem.download[selected]:hover > .downloadButton.downloadCancel:active {
+  @itemFocused@:hover .downloadButton.downloadConfirmBlock:active,
+  @itemFocused@:hover .downloadButton.downloadCancel:active {
     -moz-image-region: rect(0px, 128px, 16px, 112px);
   }
 
-  richlistitem.download[selected] > .downloadButton.downloadShow {
+  @itemFocused@ .downloadButton.downloadShow {
     -moz-image-region: rect(16px, 80px, 32px, 64px);
   }
-
-  richlistitem.download[selected]:hover > .downloadButton.downloadShow {
+  @itemFocused@:hover .downloadButton.downloadShow {
     -moz-image-region: rect(16px, 96px, 32px, 80px);
   }
-
-  richlistitem.download[selected]:hover > .downloadButton.downloadShow:hover {
+  @itemFocused@:hover .downloadButton.downloadShow:hover {
     -moz-image-region: rect(16px, 112px, 32px, 96px);
   }
-
-  richlistitem.download[selected]:hover > .downloadButton.downloadShow:active {
+  @itemFocused@:hover .downloadButton.downloadShow:active {
     -moz-image-region: rect(16px, 128px, 32px, 112px);
   }
 
-  richlistitem.download[selected] > .downloadButton.downloadRetry {
+  @itemFocused@ .downloadButton.downloadRetry {
     -moz-image-region: rect(32px, 80px, 48px, 64px);
   }
-
-  richlistitem.download[selected]:hover > .downloadButton.downloadRetry {
+  @itemFocused@:hover .downloadButton.downloadRetry {
     -moz-image-region: rect(32px, 96px, 48px, 80px);
   }
-
-  richlistitem.download[selected]:hover > .downloadButton.downloadRetry:hover {
+  @itemFocused@:hover .downloadButton.downloadRetry:hover {
     -moz-image-region: rect(32px, 112px, 48px, 96px);
   }
-
-  richlistitem.download[selected]:hover > .downloadButton.downloadRetry:active {
+  @itemFocused@:hover .downloadButton.downloadRetry:active {
     -moz-image-region: rect(32px, 128px, 48px, 112px);
   }
 }