From 8917c3d381d1f13d798c250705c0a1e9d547f821 Mon Sep 17 00:00:00 2001 From: Dai Sato Date: Wed, 30 May 2007 04:47:24 +0000 Subject: fix for tab browsing. [w3m-dev 04266] --- ChangeLog | 7 ++++++- fm.h | 9 ++++++++- main.c | 17 +++++++++++++---- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index d8ad8e6..c26be46 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-05-30 Hironori Sakamoto + + * [w3m-dev 04266] Bug fix when tab browsing + * fm.h, main.c: fix for tab browsing. + 2007-05-30 Hironori Sakamoto * [w3m-dev 04265] compile error when #undef USE_BG_COLOR @@ -8895,4 +8900,4 @@ a * [w3m-dev 03276] compile error on EWS4800 * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.995 2007/05/30 04:43:59 inu Exp $ +$Id: ChangeLog,v 1.996 2007/05/30 04:47:24 inu Exp $ diff --git a/fm.h b/fm.h index 78484c3..7ac6b30 100644 --- a/fm.h +++ b/fm.h @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.137 2007/05/23 13:07:44 inu Exp $ */ +/* $Id: fm.h,v 1.138 2007/05/30 04:47:24 inu Exp $ */ /* * w3m: WWW wo Miru utility * @@ -523,6 +523,13 @@ typedef struct _DownloadList { } DownloadList; #define DOWNLOAD_LIST_TITLE "Download List Panel" +#define COPY_BUFROOT(dstbuf, srcbuf) {\ + (dstbuf)->rootX = (srcbuf)->rootX; \ + (dstbuf)->rootY = (srcbuf)->rootY; \ + (dstbuf)->COLS = (srcbuf)->COLS; \ + (dstbuf)->LINES = (srcbuf)->LINES; \ +} + #define COPY_BUFPOSITION(dstbuf, srcbuf) {\ (dstbuf)->topLine = (srcbuf)->topLine; \ (dstbuf)->currentLine = (srcbuf)->currentLine; \ diff --git a/main.c b/main.c index 614ed4b..1731dde 100644 --- a/main.c +++ b/main.c @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.256 2007/05/29 12:07:02 inu Exp $ */ +/* $Id: main.c,v 1.257 2007/05/30 04:47:24 inu Exp $ */ #define MAINPROGRAM #include "fm.h" #include @@ -4717,8 +4717,10 @@ DEFUN(reload, RELOAD, "Reload buffer") buf->linkBuffer[LB_N_FRAME] = fbuf; pushBuffer(buf); Currentbuf = buf; - if (Currentbuf->firstLine) + if (Currentbuf->firstLine) { + COPY_BUFROOT(Currentbuf, &sbuf); restorePosition(Currentbuf, &sbuf); + } displayBuffer(Currentbuf, B_FORCE_REDRAW); return; } @@ -4783,8 +4785,10 @@ DEFUN(reload, RELOAD, "Reload buffer") } Currentbuf->search_header = sbuf.search_header; Currentbuf->form_submit = sbuf.form_submit; - if (Currentbuf->firstLine) + if (Currentbuf->firstLine) { + COPY_BUFROOT(Currentbuf, &sbuf); restorePosition(Currentbuf, &sbuf); + } displayBuffer(Currentbuf, B_FORCE_REDRAW); } @@ -5215,6 +5219,9 @@ do_mouse_action(int btn, int x, int y) cursorXY(Currentbuf, cx, cy); } } + else { + return; + } if (!(map && map->func)) map = &mouse_action.default_map[btn]; if (map && map->func) { @@ -6555,8 +6562,10 @@ DEFUN(ldDL, DOWNLOAD_LIST, "Display download list panel") return; } buf->bufferprop |= (BP_INTERNAL | BP_NO_URL); - if (replace) + if (replace) { + COPY_BUFROOT(buf, Currentbuf); restorePosition(buf, Currentbuf); + } if (!replace && open_tab_dl_list) { _newT(); new_tab = TRUE; -- cgit v1.2.3