[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: can't scroll down through large images easily


I've fixed the `w3m-modeline-title' function so as not to call
`w3m-force-window-update'.  Formerly it was needed to update the
mode line appearance when a user shrinks or enlarges the frame
width manually, however I realized it has not to be done by the
application program for the most recent Emacs 22.  Now we can
browse the page in question smoothly.  Could you try the latest
CVS?  You can also obtain it by:


Although there is no difference in the sense that Emacs is not a
good image viewer for huge images, we have the `M-[' command.

>>>>> In [emacs-w3m : No.09040] Chris Moore wrote:

> Katsumi Yamaoka <yamaoka@xxxxxxx> writes:

>> Thank you for the bug report.  I see the present behavior of
>> displaying big images in emacs-w3m buffers is really bad.  IIRC, the
>> timer is used for only updating the title of a page in the modeline
>> (the title string has to be truncated when a user shrinks the frame
>> width).  I will fix it anyway, next week.

> I'm not sure that that's all the timer is doing.  It looked to me like
> at some points there were 2 timers in the list, but I don't understand
> much what's going on.

`w3m-modeline-title' is called by the `(:eval FORM)' form in the
`mode-line-buffer-identification' for truncating the page title
displayed in the mode line when Emacs 22 or greater is running
(see `w3m-buffer-setup').  You will see how it works by resizing
manually the width of a frame in which a web page is visited.

Since the `(:eval FORM)' form in the `mode-line-format' or
equivalent calls the `FORM' too frequently, we used a timer so
that the `FORM' mostly does nothing and returns in order not to
eat CPU.  The FORM, i.e., `(w3m-modeline-title)', is called
whenever a key event or a mouse event occurs.  I don't know
whether all events call the FORM, though.

> I used Emacs to examine the value of timer-list and timer-idle-list,
> and saw that they were both empty.  Then I checked in gdb for the
> value of Vtimer_list, and that wasn't empty.

> How can that be?  Aren't they really the same thing?

You will see the timer surely exists in `timer-list' by
evaluating the following form, for example:

(progn (call-interactively 'next-line) timer-list)