Index: web/standard/src/main/webapp/resources/js/xwiki/table/livetable.js
===================================================================
--- web/standard/src/main/webapp/resources/js/xwiki/table/livetable.js	(revision 28276)
+++ web/standard/src/main/webapp/resources/js/xwiki/table/livetable.js	Wed Apr 21 11:38:11 CEST 2010
@@ -614,22 +614,23 @@
         if (this.filters[key]) {
           inputs[i].value = this.filters[key];
         }
+        this.applyActiveFilterStyle(inputs[i]);
       }
     }
 
     var selects = this.filterNode.select("select");
     for (var i = 0; i < selects.length; ++i) {
-      if (!this.filters[selects[i].name]) {
-        continue;
-      }
+      if (this.filters[selects[i].name]) {
-      for (var j = 0; j < selects[i].options.length; ++j) {
-        if (selects[i].options[j].value == this.filters[selects[i].name]) {
-          selects[i].options[j].selected = true;
-        } else {
-          selects[i].options[j].selected = false;
-        }
-      }
-    }
+        for (var j = 0; j < selects[i].options.length; ++j) {
+          if (selects[i].options[j].value == this.filters[selects[i].name]) {
+            selects[i].options[j].selected = true;
+          } else {
+            selects[i].options[j].selected = false;
+          }
+        }
+      }
+      this.applyActiveFilterStyle(selects[i]);
+    }
   },
 
   serializeFilters: function()
@@ -660,6 +661,7 @@
     for(var i = 0; i < inputs.length; i++) {
       if (inputs[i].type == "text") {
         Event.observe(inputs[i], 'keyup', this.makeRefreshHandler(this));
+        Event.observe(inputs[i], 'keyup', this.refreshActiveFilterStyle.bind(this));
       } else {
         //IE is buggy on "change" events for checkboxes and radios
         Event.observe(inputs[i], 'click', this.makeRefreshHandler(this));
@@ -668,6 +670,7 @@
 
     for(var i = 0; i < selects.length; i++) {
       Event.observe(selects[i], 'change', this.makeRefreshHandler(this));
+      Event.observe(selects[i], 'change', this.refreshActiveFilterStyle.bind(this));
     }
 
     // Allow custom filters to trigger filter change from non-native events
@@ -688,7 +691,29 @@
     this.table.filters = newFilters;
     this.table.showRows(1, this.table.limit);
   // 0 was 1
+  },
+
+  /**
+   * Refresh style of livetable filters element
+   */
+  refreshActiveFilterStyle: function(event) {
+    try {
+        this.applyActiveFilterStyle(event.element());
+    } catch (e) { try { console.log("Error while refreshing filter active style: ", e ); console.log(event);} catch (e1) {} }
+  },
+
+  /**
+   * Apply style to livetable filters that are applied
+   */
+  applyActiveFilterStyle: function(element) {
+    try {
+        if ($F(element) != '') {
+                element.addClassName('xwiki-livetable-filter-active');
+        } else {
+                element.removeClassName('xwiki-livetable-filter-active');
-  }
+        }
+    } catch (e) { try { console.log("Error while applying filter active style: ", e ); console.log(element);} catch (e1) {} }
+  }
 });
 
 /**
Index: web/standard/src/main/webapp/resources/js/xwiki/table/livetable.css
===================================================================
--- web/standard/src/main/webapp/resources/js/xwiki/table/livetable.css	(revision 28234)
+++ web/standard/src/main/webapp/resources/js/xwiki/table/livetable.css	Wed Apr 21 11:38:11 CEST 2010
@@ -155,6 +155,10 @@
   margin: 0;
   padding: 0 0 0 2px;
 }
+.xwiki-livetable-filter-active {
+  background-color: $theme.highlightColor !important;
+  font-weight: bold;
+}
 /* </ Live Table Header> */
 /* <Live Table Body> */
 tbody.xwiki-livetable-display-body tr {
