From d1ac1286b7b234c7e221f34638b37e304608d02c Mon Sep 17 00:00:00 2001 From: gorhill Date: Wed, 7 Dec 2016 09:43:11 -0500 Subject: [PATCH] addendum to fix for #2206: auto scroll to the end of user filters text box --- src/js/1p-filters.js | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/js/1p-filters.js b/src/js/1p-filters.js index 307a70e4f..77ba95581 100644 --- a/src/js/1p-filters.js +++ b/src/js/1p-filters.js @@ -36,22 +36,29 @@ var cachedUserFilters = ''; // This is to give a visual hint that the content of user blacklist has changed. -function userFiltersChanged() { - var changed = uDom.nodeFromId('userFilters').value.trim() !== cachedUserFilters; +function userFiltersChanged(changed) { + if ( typeof changed !== 'boolean' ) { + changed = uDom.nodeFromId('userFilters').value.trim() !== cachedUserFilters; + } uDom.nodeFromId('userFiltersApply').disabled = !changed; uDom.nodeFromId('userFiltersRevert').disabled = !changed; } /******************************************************************************/ -function renderUserFilters() { +function renderUserFilters(first) { var onRead = function(details) { - if ( details.error ) { - return; - } + if ( details.error ) { return; } + var textarea = uDom.nodeFromId('userFilters'); cachedUserFilters = details.content.trim(); - uDom.nodeFromId('userFilters').value = details.content; - userFiltersChanged(); + textarea.value = details.content; + if ( first ) { + textarea.value += '\n'; + var textlen = textarea.value.length; + textarea.setSelectionRange(textlen, textlen); + textarea.focus(); + } + userFiltersChanged(false); }; messaging.send('dashboard', { what: 'readUserFilters' }, onRead); } @@ -195,7 +202,7 @@ uDom('#userFilters').on('input', userFiltersChanged); uDom('#userFiltersApply').on('click', applyChanges); uDom('#userFiltersRevert').on('click', revertChanges); -renderUserFilters(); +renderUserFilters(true); /******************************************************************************/