[Top][All Lists]

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

lynx-dev partial display (was: on caching)

From: Klaus Weide
Subject: lynx-dev partial display (was: on caching)
Date: Wed, 18 Nov 1998 04:53:51 -0600 (CST)

On Wed, 18 Nov 1998, Leonid Pauzner wrote:

> Just a more practical thought.
> How does display partial logic appears in lynx?
> One boy from Check found out that repaint done by HText_pageDisplay()
> and the appropriate place to call it from HTFormat.c/HTCopy() while
> reading stream and LYUtils.c/HTCheckForInterrupt() to enable scrolling.
> He made an alpha patch and disconnected from lynx-dev.
> Of cause, we got a lot of bugs and and side effects.
> Now I jump into and fix them by introducing several flags:
> including two linecounters, durty workaround for "forms input" problems,
> and a synchronization semaphore (!),
> we got it in 5-10 sequential attempts...
> What I want to say: it wasn't supposed to do so by lynx original designers
> but the internal structure permits this (except few more recent bugs -
> we find a workarond for them).

Some things about the partial display:

I am not surprised that it took 5-10 sequential attempts.  I am actually
surprised that it didn't take more changes to the code, and that it
works more-or-less nicely already.  Functions now get called in situations
where they never were meant to be called, and it is astonishing that
they don't crash (even if the display sometimes get garbled).

I am working on changing HText_trimHightext() so that it can deal correctly
with being called several times, and will submit a patch.  But it occured
to me that there may be a much simper solution to the problems with form
fields: What happens if you just don't do the
            highlight(OFF, (nlinks - 1), target);
in display_page() while being in incremental rendering mode?  Could you
please try that?  (You know best which flags to check for determine
whether the function is called during partial display.)  Then calling
HText_trimHightext() may not be necessary at all.

You may also want to break out of the two major loops in display_page()
when text->last_line has been reached, because that is the line still
being filled (only during partial display).


reply via email to

[Prev in Thread] Current Thread [Next in Thread]