From: Roan Kattouw Date: Mon, 2 Oct 2017 19:07:57 +0000 (-0700) Subject: Reapply "RCFilters: Don't apply/clear highlights 66 times" X-Git-Tag: 1.31.0-rc.0~1902 X-Git-Url: http://git.cyclocoop.org/%24href?a=commitdiff_plain;h=7e25acc56a8bfdc6dd793e9d4d89b801a950d70b;p=lhc%2Fweb%2Fwiklou.git Reapply "RCFilters: Don't apply/clear highlights 66 times" Reverts 84ddcd5d23, reapplies 212d67c67. The original version broke the highlight color circles, this fixes it by using enable instead of this.highlightEnabled to pass down to the items. The former was always false, so it didn't actually propagate the state down correctly. Bug: T177107 Change-Id: I341d9bcd39252eac07bfebfa6d46895bc62c372f --- diff --git a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js index 3b882a6ba7..edb3d0f4d5 100644 --- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js +++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.FiltersViewModel.js @@ -1026,12 +1026,14 @@ enable = enable === undefined ? !this.highlightEnabled : enable; if ( this.highlightEnabled !== enable ) { - this.highlightEnabled = enable; - + // HACK make sure highlights are disabled globally while we toggle on the items, + // otherwise we'll call clearHighlight() and applyHighlight() many many times + this.highlightEnabled = false; this.getItems().forEach( function ( filterItem ) { - filterItem.toggleHighlight( this.highlightEnabled ); - }.bind( this ) ); + filterItem.toggleHighlight( enable ); + } ); + this.highlightEnabled = enable; this.emit( 'highlightChange', this.highlightEnabled ); } };