From 05163a6d2bb1dd2b809ce36a5f2139b127f97ba1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 29 Jan 2018 13:45:09 +0100 Subject: [PATCH] doxygen: prevent page scroll (and layout jumps) on showing search. --- doxygen/search.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/doxygen/search.js b/doxygen/search.js index 064028ac..66da5acc 100644 --- a/doxygen/search.js +++ b/doxygen/search.js @@ -346,6 +346,12 @@ function selectResult(event) { /* istanbul ignore next */ function showSearch() { window.location.hash = '#search'; + + /* Prevent accidental scrolling of the body, prevent page layout jumps */ + let scrolledBodyWidth = document.body.offsetWidth; + document.body.style.overflow = 'hidden'; + document.body.style.paddingRight = (document.body.offsetWidth - scrolledBodyWidth) + 'px'; + document.getElementById('search-input').value = ''; document.getElementById('search-input').focus(); document.getElementById('search-results').style.display = 'none'; @@ -358,6 +364,11 @@ function showSearch() { function hideSearch() { window.location.hash = '#!'; window.history.pushState('', '', window.location.pathname); + + /* Restore scrollbar, prevent page layout jumps */ + document.body.style.overflow = 'auto'; + document.body.style.paddingRight = '0'; + return false; } -- 2.30.2