1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-20 07:08:08 +02:00
pdf.js/web
Jonas Jenwald b42120bdb0 Take the position of the selected element into account when scrolling matches (issue 13596)
Note that as far as I can tell, this is *not* a regression but rather a bug which has existed since basically "forever".

**In order to reproduce this easily:**
 - Open the viewer.
 - Set the zoom level to `400%`,
 - Search for "expression".

The problem here is that when scrolling matches into view, we're scrolling to the start of the *containing* `textLayer` element rather than the start of the highlighted match itself.[1] When the entire width (or at least most) of the page is visible in the viewer, that doesn't really matter though which is likely why this bug has gone unnoticed for so long.[2]
Given that the highlighted match can be placed anywhere, e.g. even at the very end, within its `textLayer` element it's quite easy to see why the current implementation becomes a problem at higher zoom levels. All of this is then *further* exacerbated by `PDFFindController.scrollMatchIntoView` using a negative left offset, to ensure that the current match has some (visible) context available once scrolled into view.

In order to address this long-standing bug, we'll determine the (left) offset of the `selected` match and use that to modify the final position scrolled to in `PDFFindController.scrollMatchIntoView` such that the match is visible regardless of zoom level.

---
[1] Unfortunately we cannot directly scroll to the `selected` match, since it's not absolutely positioned and changing that would cause other bugs/regressions (note recent patches in that area).

[2] I did actually stumble upon this problem a little while ago, while working on PR 13482, but forgot to look into this again until I saw the new issue.
2021-06-21 11:49:33 +02:00
..
images Add an icon for the "find/highlight the current outlineItem" functionality 2021-01-09 16:09:46 +01:00
.gitignore Remove obselete file from .gitignore 2015-01-26 16:44:45 +01:00
annotation_layer_builder.css Correctly align annotation content in horizontal/spread scrolling modes 2021-01-10 18:58:13 +01:00
annotation_layer_builder.js Collect all l10n fallback strings, used in the viewer, in one helper function (PR 12981 follow-up) 2021-03-04 11:34:51 +01:00
app.js Account for formatting changes in Prettier version 2.3.0 2021-05-16 11:44:05 +02:00
app_options.js Include and use the 14 standard fonts files. 2021-06-07 11:10:11 -07:00
base_tree_viewer.js Add support for finding/highlighting the outlineItem, corresponding to the currently visible page, in the sidebar (issue 7557, bug 1253820, bug 1499050) 2021-01-09 16:09:44 +01:00
base_viewer.js XFA - Add a storage to save fields values - this is required to be able to print (or save) a document. Some pages can be unloaded (because pdf.js is lazy) and this storage will help to save their data in order to resuse them when printing or just when displaying a page again. 2021-05-25 19:25:09 +02:00
chrome-i18n-allow-access-to-file-urls.json Add translations of "Allow access to file URLs" 2015-08-14 18:59:55 +02:00
chromecom.js Account for formatting changes in Prettier version 2.3.0 2021-05-16 11:44:05 +02:00
compressed.tracemonkey-pldi-09.pdf Add Makefile. Move some files around to make building the website easier. 2011-07-05 10:53:57 -07:00
debugger.js Add more info for showText operator in stepper. 2021-06-04 13:58:05 -07:00
download_manager.js [api-minor] Support the Content-Disposition filename in the Firefox PDF Viewer (bug 1694556, PR 9379 follow-up) 2021-02-26 10:50:29 +01:00
firefox_print_service.js [GENERIC viewer] Fix printing regression from PR 13411 2021-06-02 21:42:24 +02:00
firefoxcom.js Collect all l10n fallback strings, used in the viewer, in one helper function (PR 12981 follow-up) 2021-03-04 11:34:51 +01:00
generic_scripting.js Account for formatting changes in Prettier version 2.3.0 2021-05-16 11:44:05 +02:00
genericcom.js Pass in the "sandboxBundleSrc" option when calling DefaultExternalServices.createScripting 2020-12-23 14:05:49 +01:00
genericl10n.js Collect all l10n fallback strings, used in the viewer, in one helper function (PR 12981 follow-up) 2021-03-04 11:34:51 +01:00
grab_to_pan.js [GrabToPan] Use Element.matches() rather than prefixed ...matchesSelector versions 2021-03-26 21:37:51 +01:00
interfaces.js Add support for basic structure tree for accessibility. 2021-04-09 09:56:28 -07:00
l10n_utils.js [GENERIC viewer] Don't display the errorWrapper, for documents with signatures (PR 13217 follow-up) 2021-04-16 09:53:59 +02:00
overlay_manager.js Fix the linting errors, from the Prettier auto-formatting, that ESLint --fix couldn't handle 2019-12-26 12:35:12 +01:00
password_prompt.js Collect all l10n fallback strings, used in the viewer, in one helper function (PR 12981 follow-up) 2021-03-04 11:34:51 +01:00
pdf_attachment_viewer.js [api-minor] Support the Content-Disposition filename in the Firefox PDF Viewer (bug 1694556, PR 9379 follow-up) 2021-02-26 10:50:29 +01:00
pdf_cursor_tools.js Remove the useless PresentationModeState.CHANGING-case in PDFCursorTools (PR 12788 follow-up) 2021-02-14 10:39:49 +01:00
pdf_document_properties.js Move the getPdfFilenameFromUrl helper function from web/ui_utils.js and into src/display/display_utils.js 2021-03-17 15:48:24 +01:00
pdf_find_bar.js Collect all l10n fallback strings, used in the viewer, in one helper function (PR 12981 follow-up) 2021-03-04 11:34:51 +01:00
pdf_find_controller.js Take the position of the selected element into account when scrolling matches (issue 13596) 2021-06-21 11:49:33 +02:00
pdf_find_utils.js Enable auto-formatting of the entire code-base using Prettier (issue 11444) 2019-12-26 12:34:24 +01:00
pdf_history.js [PDFHistory] Correctly simulate an internal destination in the pushPage-method (PR 12493 follow-up) 2021-03-25 12:24:28 +01:00
pdf_layer_viewer.js Account for formatting changes in Prettier version 2.3.0 2021-05-16 11:44:05 +02:00
pdf_link_service.js Remove the deprecated PDFLinkService.navigateTo-method (PR 12440 follow-up) 2021-04-06 13:08:50 +02:00
pdf_outline_viewer.js Ensure that currentOutlineButton enabling/disabling won't depend on the exact timing of the "pagesloaded" event (PR 13212 follow-up) 2021-04-11 10:36:46 +02:00
pdf_page_view.js XFA - Add a storage to save fields values - this is required to be able to print (or save) a document. Some pages can be unloaded (because pdf.js is lazy) and this storage will help to save their data in order to resuse them when printing or just when displaying a page again. 2021-05-25 19:25:09 +02:00
pdf_presentation_mode.js Remove the deprecated properties from the "presentationmodechanged" event (PR 12788 follow-up) 2021-04-06 13:04:23 +02:00
pdf_print_service.js [GENERIC viewer] Fix printing regression from PR 13411 2021-06-02 21:42:24 +02:00
pdf_rendering_queue.js Use ESLint to ensure that exports are sorted alphabetically 2021-01-09 20:37:51 +01:00
pdf_scripting_manager.js Ensure that PDFScriptingManager.setDocument handles failure when initializing the scripting-factory 2021-06-17 18:42:15 +02:00
pdf_sidebar.js Improve the handling of the currentOutlineButton enabling/disabling (PR 12777 follow-up) 2021-04-10 13:12:47 +02:00
pdf_sidebar_resizer.js Use more optional chaining in the web/-folder (PR 12961 follow-up) 2021-03-07 16:20:52 +01:00
pdf_single_page_viewer.js Add previous/next-page functionality that takes scroll/spread-modes into account (issue 11946) 2021-01-22 21:38:15 +01:00
pdf_thumbnail_view.js Account for formatting changes in Prettier version 2.3.0 2021-05-16 11:44:05 +02:00
pdf_thumbnail_viewer.js Remove the disableCanvasToImageConversion functionality from PDFThumbnailView (PR 7029 follow-up) 2021-05-09 14:26:01 +02:00
pdf_viewer.component.js [api-minor] Move the viewer scripting initialization/handling into a new PDFScriptingManager class 2021-03-05 20:31:48 +01:00
pdf_viewer.css Implement high contrast mode 2021-04-11 17:07:33 +04:00
pdf_viewer.js Add previous/next-page functionality that takes scroll/spread-modes into account (issue 11946) 2021-01-22 21:38:15 +01:00
pdfjs.js Enable auto-formatting of the entire code-base using Prettier (issue 11444) 2019-12-26 12:34:24 +01:00
preferences.js Remove some *indirect* loops in the BasePreferences.getAll-method 2021-03-22 14:38:05 +01:00
secondary_toolbar.js fix(a11y): resolve sidebar, find, toolbar missing aria-expanded and 2021-02-05 16:08:29 -08:00
struct_tree_layer_builder.js Add support for basic structure tree for accessibility. 2021-04-09 09:56:28 -07:00
text_layer_builder.css Fix find highlighting regression from #13306. 2021-06-01 15:25:40 -07:00
text_layer_builder.js Take the position of the selected element into account when scrolling matches (issue 13596) 2021-06-21 11:49:33 +02:00
toolbar.js Remove focus from the zoom dropdown, when a mouse is used (bug 1300525, issue 4923) 2021-05-20 15:28:38 +02:00
ui_utils.js Fix scrolling of search results in documents with marked content (bug 1714183) 2021-06-03 12:41:51 +02:00
view_history.js Add a bit more validation in the ViewHistory constructor 2020-03-21 13:55:06 +01:00
viewer-snippet-chrome-extension.html Wraps mozL10n to async calls; splits firefox and generic l10n libs. 2017-05-31 09:22:25 -05:00
viewer-snippet-chrome-overlays.html [CRX] Add file chooser as fallback (fixes #9411) 2018-03-21 18:21:46 +01:00
viewer-snippet-firefox-extension.html Stop bundling the ReadableStream polyfill in MOZCENTRAL builds (PR 10470 follow-up) 2019-01-23 20:33:20 +01:00
viewer-snippet-minified.html Remove XHTML leftovers from the viewer HTML files 2016-02-14 13:23:34 +01:00
viewer-snippet.html Wraps mozL10n to async calls; splits firefox and generic l10n libs. 2017-05-31 09:22:25 -05:00
viewer.css Add more info for showText operator in stepper. 2021-06-04 13:58:05 -07:00
viewer.html Stop including the "errorWrapper" HTML code in MOZCENTRAL-builds 2021-02-14 10:39:34 +01:00
viewer.js Stop including the "errorWrapper" HTML code in MOZCENTRAL-builds 2021-02-14 10:39:34 +01:00
viewer_compatibility.js Remove code-paths only relevant for IE 11/Edge (non-Chromium based) from the web/ folder 2020-09-05 17:18:15 +02:00
xfa_layer_builder.css XFA - Add support for access property 2021-06-21 09:56:28 +02:00
xfa_layer_builder.js XFA - Use native radio and checkbox buttons 2021-06-01 21:25:38 +02:00