From: Eli Zaretskii <eliz@gnu.org>
To: politza@hochschule-trier.de
Cc: emacs-devel@gnu.org
Subject: Re: Displaying scrollable images in a grid-layout
Date: Tue, 14 Apr 2015 17:56:35 +0300 [thread overview]
Message-ID: <83sic2bvx8.fsf@gnu.org> (raw)
In-Reply-To: <83egnndb93.fsf@gnu.org>
> Date: Mon, 13 Apr 2015 23:27:52 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: emacs-devel@gnu.org
>
> Try this:
>
> (defun show-data-dir-images (&optional ncolumns)
> (interactive (list 4))
> (let* ((files (directory-files
> (expand-file-name "images" data-directory)
> no-dot-files))
> (column 0))
> (with-current-buffer (get-buffer-create "*images*")
> (erase-buffer)
> (save-excursion
> (dolist (f files)
> (when (and (file-regular-p f)
> (file-name-extension f)
> (image-type-available-p
> (intern (downcase (file-name-extension f)))))
> (insert-image (create-image f))
> (when (= (cl-incf column) ncolumns)
> (insert ?\n)
> (setq column 0)))))
> (setq-local scroll-conservatively 0)
> (setq-local scroll-step 0)
> (setq-local scroll-up-aggressively nil)
> (display-buffer (current-buffer)))))
After running this function, this works for me:
(set-window-vscroll nil N t)
as long as (a) point is not on the first screen line shown in the
window, and (b) N is no more than 24, which AFAICS is the pixel size
of the small images created by the above function.
This also works:
(set-window-vscroll nil N)
as long as N is less than the vertical coordinate of point's line in
canonical line height units.
Is that what you see? If you see something else, we are not talking
about the same issue.
> (setq-local scroll-step 1)
> (set-window-vscroll nil 10) => Scrolls, but:
>
> Redisplay performance (or something else) greatly suffers, i.e. opening
> e.g. the M-x prompt after I have executed the above 2 commands takes
> about one second. (I have tested this with emacs-git -Q .)
I don't see this performance hit. After typing "M-x", I see the
prompt with no perceptible delay, certainly nowhere near 1 sec. So
some other factor is at work here. Maybe your original recipe is
somehow different in this respect from the modified one, which I
tried, e.g. the thumbnail images are probably smaller, though I don't
see why that would make redisplay slower. (I also tried to use more
than 4 columns, but saw no redisplay slow-down in that case, either.)
The other points I made in my previous message and today still hold:
there are limits to what Emacs will currently let you do with
window-vscroll, mainly due to 2 factors:
. the basic desire embedded in redisplay to avoid showing partial
lines, unless they are unavoidable
. the automatic scrolling when point goes off the window
Let me know if you need further help or have additional
questions/issues about this.
next prev parent reply other threads:[~2015-04-14 14:56 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-13 8:06 Displaying scrollable images in a grid-layout Andreas Politz
2015-04-13 14:57 ` Eli Zaretskii
2015-04-13 19:35 ` Andreas Politz
2015-04-13 20:27 ` Eli Zaretskii
2015-04-14 13:29 ` Tassilo Horn
2015-04-14 14:11 ` Stefan Monnier
2015-04-14 14:43 ` Tassilo Horn
2015-04-14 20:04 ` Stefan Monnier
2015-04-14 22:15 ` Rasmus
2015-04-14 14:51 ` Eli Zaretskii
2015-04-14 19:24 ` Tassilo Horn
2015-04-15 2:37 ` Eli Zaretskii
2015-04-15 4:17 ` Yuri Khan
2015-04-15 16:05 ` Eli Zaretskii
2015-04-15 16:35 ` Yuri Khan
2015-04-15 16:47 ` Eli Zaretskii
2015-04-15 17:02 ` Yuri Khan
2015-04-15 17:33 ` Eli Zaretskii
2015-04-15 18:26 ` Andreas Politz
2015-04-15 19:31 ` Stefan Monnier
2015-04-14 14:56 ` Eli Zaretskii [this message]
2015-04-14 19:29 ` Andreas Politz
[not found] ` <8738424igv.fsf@hochschule-trier.de>
2015-04-15 2:41 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83sic2bvx8.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=politza@hochschule-trier.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).