From c3fdefc2ca0f2703e47be494ff72a7fd25f9e8f8 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sun, 19 Mar 2023 13:12:08 +0100 Subject: [PATCH] Fix a swiping issue. A infobox that was too wide could be dragged in and then magically disappear; this would be since clientWidth would be 0 when we measured (because style.display was 'none' before positioning, and then fixed only immediately afterwards). --- files/pr0n-fullscreen.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/files/pr0n-fullscreen.js b/files/pr0n-fullscreen.js index 7f5aed6..a2480b4 100644 --- a/files/pr0n-fullscreen.js +++ b/files/pr0n-fullscreen.js @@ -135,8 +135,8 @@ function display_image(url, backend_width, backend_height, elem_id, offset) // scroll offset completely off. img.style.display = 'none'; setTimeout(function() { + img.style.display = null; // Must be done before position_image(), for measurement. position_image(img, backend_width, backend_height, offset, false); - img.style.display = null; }, 1); } } @@ -164,8 +164,8 @@ function display_infobox(html, backend_width, backend_height, elem_id, offset) // scroll offset completely off. box.style.display = 'none'; setTimeout(function() { + box.style.display = null; // Must be done before position_image(), for measurement. position_image(box, backend_width, backend_height, offset, true); - box.style.display = null; }, 1); } } @@ -278,10 +278,8 @@ function position_image(img, backend_width, backend_height, offset, box) img.style.height = "24px"; img.style.width = null; img.style.whiteSpace = 'nowrap'; - if (offset == 0) { - // Hide the box if there's no room for all the text. - img.style.opacity = (img.clientWidth < width / dpr + 10) ? null : 0.0; - } + // Hide the box if there's no room for all the text. + img.style.opacity = (img.clientWidth < width / dpr + 10) ? null : 0.0; img.style.width = (width / dpr) + "px"; } else { img.style.top = (top / dpr) + "px"; -- 2.39.2