[w3m-dev 02748] cleanup code for restoring cursor position

From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
Fumitoshi UKAI
2001-12-26 18:17:57 +00:00
parent e8865ad8a0
commit 91f74e09ec
6 changed files with 123 additions and 111 deletions

View File

@@ -1,4 +1,4 @@
/* $Id: buffer.c,v 1.8 2001/12/04 16:33:08 ukai Exp $ */
/* $Id: buffer.c,v 1.9 2001/12/26 18:17:57 ukai Exp $ */
#include "fm.h"
#ifdef USE_MOUSE
@@ -487,8 +487,7 @@ void
reshapeBuffer(Buffer *buf)
{
URLFile f;
int top, linenum, cursorY, pos, currentColumn;
AnchorList *formitem;
Buffer sbuf;
if (buf->sourcefile == NULL)
return;
@@ -498,24 +497,13 @@ reshapeBuffer(Buffer *buf)
if (f.stream == NULL)
return;
if (buf->firstLine == NULL) {
top = 1;
linenum = 1;
}
else {
top = buf->topLine->linenumber;
linenum = buf->currentLine->linenumber;
}
cursorY = buf->cursorY;
pos = buf->pos;
currentColumn = buf->currentColumn;
copyBuffer(&sbuf, buf);
clearBuffer(buf);
while (buf->frameset) {
deleteFrameSet(buf->frameset);
buf->frameset = popFrameTree(&(buf->frameQ));
}
formitem = buf->formitem;
buf->href = NULL;
buf->name = NULL;
buf->img = NULL;
@@ -537,18 +525,15 @@ reshapeBuffer(Buffer *buf)
#endif
buf->height = LASTLINE + 1;
buf->topLine = lineSkip(buf, buf->topLine, top - 1, FALSE);
gotoLine(buf, linenum);
buf->pos = pos;
buf->currentColumn = currentColumn;
arrangeCursor(buf);
if (buf->firstLine)
restorePosition(buf, &sbuf);
if (buf->check_url & CHK_URL)
chkURL();
chkURLBuffer(buf);
#ifdef USE_NNTP
if (buf->check_url & CHK_NMID)
chkNMID();
chkNMIDBuffer(buf);
#endif
formResetBuffer(buf, formitem);
formResetBuffer(buf, sbuf.formitem);
}
/* shallow copy */