Function: pdf-util-required-hscroll
pdf-util-required-hscroll is a natively compiled function defined in
pdf-util.el.
Signature
(pdf-util-required-hscroll EDGES &optional EAGER-P CONTEXT-PIXEL)
Documentation
Return the amount of scrolling necessary, to make image EDGES visible.
Scroll as little as necessary. Unless EAGER-P is non-nil, in which case scroll as much as possible.
Keep CONTEXT-PIXEL pixel of the image visible at the bottom and top of the window. CONTEXT-PIXEL defaults to 0.
Return the required hscroll in columns or nil, if scrolling is not needed.
Source Code
;; Defined in /nix/store/63h5z2vmzn0mfavcxi2idi23g5xcgkbl-emacs-packages-deps/share/emacs/site-lisp/elpa/pdf-tools-20260102.1101/pdf-util.el
(defun pdf-util-required-hscroll (edges &optional eager-p context-pixel)
"Return the amount of scrolling necessary, to make image EDGES visible.
Scroll as little as necessary. Unless EAGER-P is non-nil, in
which case scroll as much as possible.
Keep CONTEXT-PIXEL pixel of the image visible at the bottom and
top of the window. CONTEXT-PIXEL defaults to 0.
Return the required hscroll in columns or nil, if scrolling is not
needed."
(pdf-util-assert-pdf-window)
(unless context-pixel
(setq context-pixel 0))
(let* ((win (window-inside-pixel-edges))
(image-width (car (pdf-view-image-size t)))
(image-left (* (frame-char-width)
(window-hscroll)))
(edges (pdf-util-translate
edges
(pdf-view-image-offset) t)))
(pdf-util-with-edges (win edges)
(let* ((edges-left (- edges-left context-pixel))
(edges-right (+ edges-right context-pixel)))
(if (< edges-left image-left)
(round (/ (max 0 (if eager-p
(- edges-right win-width)
edges-left))
(frame-char-width)))
(if (> (min image-width
edges-right)
(+ image-left win-width))
(round (/ (min (- image-width win-width)
(if eager-p
edges-left
(- edges-right win-width)))
(frame-char-width)))))))))