From 7e25acc56a8bfdc6dd793e9d4d89b801a950d70b Mon Sep 17 00:00:00 2001 From: Roan Kattouw Date: Mon, 2 Oct 2017 12:07:57 -0700 Subject: [PATCH] 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 --- .../dm/mw.rcfilters.dm.FiltersViewModel.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 ); } }; -- 2.20.1