From 14637923fcc989148e95d0ea83af61c34efa86ba Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Wed, 17 May 2023 10:05:19 -0400 Subject: [PATCH] Fix remaining quirks in "Filter lists" pane Do not sticky unchecked lists in search mode. Propagate default status of a sublist upward to its parent entry. --- src/js/3p-filters.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/js/3p-filters.js b/src/js/3p-filters.js index 4e02768f9..682a83c8d 100644 --- a/src/js/3p-filters.js +++ b/src/js/3p-filters.js @@ -371,16 +371,17 @@ const toggleFilterList = (elem, on, ui = false) => { const listEntry = elem.closest('.listEntry'); if ( listEntry === null ) { return; } if ( listEntry.dataset.parent === 'root' ) { return; } + const searchMode = dom.cl.has('#lists', 'searchMode'); const input = qs$(listEntry, ':scope > .detailbar input'); if ( on === undefined ) { on = input.checked === false; } input.checked = on; dom.cl.toggle(listEntry, 'checked', on); - dom.cl.toggle(listEntry, 'stickied', ui && !on); + dom.cl.toggle(listEntry, 'stickied', ui && !on && !searchMode); // Select/unselect descendants. Twist: if in search-mode, select only // search-matched descendants. - const childListEntries = dom.cl.has('#lists', 'searchMode') + const childListEntries = searchMode ? qsa$(listEntry, '.listEntry.searchMatch') : qsa$(listEntry, '.listEntry'); for ( const descendantList of childListEntries ) { @@ -440,6 +441,9 @@ const updateListNode = listNode => { lastUpdateTemplateString.replace('{{ago}}', i18n.renderElapsedTimeToString(writeTime)) ); } + if ( qs$(listNode, '.listEntry.isDefault') !== null ) { + dom.cl.add(listNode, 'isDefault'); + } if ( qs$(listNode, '.listEntry.stickied') !== null ) { dom.cl.add(listNode, 'stickied'); }