From d4b7c51b76414905f5c447eb9e2c1f327e72c2a1 Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Mon, 11 Nov 2002 15:33:28 +0000 Subject: [w3m-dev 03408] fix Bug#87472: MOUSE_SCROLL_LINE should be a run-time option * fm.h (relative_wheel_scroll): added (fixed_wheel_scroll_count): added (relative_wheel_scroll_ratio): added * main.c (mouse_scroll_line): added (process_mouse): s/MOUSE_SCROLL_LINE/mouse_scroll_line()/ * menu.c (MOUSE_SCROLL_LINE): deleted * terms.h (MOUSE_SCROLL_LINE): deleted * rc.c (CMT_RELATIVE_WHEEL_SCROLL): added (CMT_RELATIVE_WHEEL_SCROLL_RATIO): added (CMT_FIXED_WHEEL_SCROLL_COUNT): added (wheelmode): added (params3): add relative_wheel_scroll, relative_wheel_scroll_ratio, fixed_wheel_scroll_count From: AIDA Shinra --- ChangeLog | 22 +++++++++++++++++++++- NEWS | 3 +++ fm.h | 5 ++++- main.c | 19 ++++++++++++++----- menu.c | 3 +-- rc.c | 29 ++++++++++++++++++++++++++++- terms.h | 3 +-- 7 files changed, 72 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index f83cb2d..46d8935 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2002-11-12 AIDA Shinra + + * [w3m-dev 03408] fix Bug#87472 + MOUSE_SCROLL_LINE should be a run-time option + * fm.h (relative_wheel_scroll): added + (fixed_wheel_scroll_count): added + (relative_wheel_scroll_ratio): added + * main.c (mouse_scroll_line): added + (process_mouse): s/MOUSE_SCROLL_LINE/mouse_scroll_line()/ + * menu.c (MOUSE_SCROLL_LINE): deleted + * terms.h (MOUSE_SCROLL_LINE): deleted + * rc.c (CMT_RELATIVE_WHEEL_SCROLL): added + (CMT_RELATIVE_WHEEL_SCROLL_RATIO): added + (CMT_FIXED_WHEEL_SCROLL_COUNT): added + (wheelmode): added + (params3): add relative_wheel_scroll, + relative_wheel_scroll_ratio, + fixed_wheel_scroll_count + * NEWS: updated + 2002-11-12 Hironori SAKAMOTO * [w3m-dev 03407] char GlobalKeymap -> unsigned char GlobalKeymap @@ -4516,4 +4536,4 @@ a * [w3m-dev 03276] compile error on EWS4800 * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.496 2002/11/11 15:22:37 ukai Exp $ +$Id: ChangeLog,v 1.497 2002/11/11 15:33:28 ukai Exp $ diff --git a/NEWS b/NEWS index 8bc2c03..fec0d88 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,8 @@ w3m 0.3.3 or 0.4? +* rc: relative_wheel_scroll +* rc: relative_wheel_scroll_ratio +* rc: fixed_wheel_scroll_count * separate auxbindir and libdir (local-CGI, file:///$LIB/) * configure: -auxbindir * rc: disable_secret_security_check (for windows?) diff --git a/fm.h b/fm.h index cf70343..305a632 100644 --- a/fm.h +++ b/fm.h @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.74 2002/11/11 15:22:39 ukai Exp $ */ +/* $Id: fm.h,v 1.75 2002/11/11 15:33:35 ukai Exp $ */ /* * w3m: WWW wo Miru utility * @@ -964,6 +964,9 @@ global int rc_dir_is_tmp init(FALSE); global int use_mouse init(TRUE); extern int mouseActive; global int reverse_mouse init(FALSE); +global int relative_wheel_scroll init(FALSE); +global int fixed_wheel_scroll_count init(5); +global int relative_wheel_scroll_ratio init(30); #endif /* USE_MOUSE */ #ifdef USE_COOKIE diff --git a/main.c b/main.c index 1bff1a8..e63ccba 100644 --- a/main.c +++ b/main.c @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.126 2002/11/11 15:16:38 ukai Exp $ */ +/* $Id: main.c,v 1.127 2002/11/11 15:33:36 ukai Exp $ */ #define MAINPROGRAM #include "fm.h" #include @@ -4656,6 +4656,15 @@ stopI(void) #ifdef USE_MOUSE +static int +mouse_scroll_line(void) +{ + if (relative_wheel_scroll) + return (relative_wheel_scroll_ratio * LASTLINE + 99) / 100; + else + return fixed_wheel_scroll_count; +} + static TabBuffer * posTab(int x, int y) { @@ -4814,21 +4823,21 @@ process_mouse(int btn, int x, int y) #endif /* USE_MENU */ break; case MOUSE_BTN4_DOWN_RXVT: - for (i = 0; i < MOUSE_SCROLL_LINE; i++) + for (i = 0; i < mouse_scroll_line(); i++) ldown1(); break; case MOUSE_BTN5_DOWN_RXVT: - for (i = 0; i < MOUSE_SCROLL_LINE; i++) + for (i = 0; i < mouse_scroll_line(); i++) lup1(); break; } } else if (btn == MOUSE_BTN4_DOWN_XTERM) { - for (i = 0; i < MOUSE_SCROLL_LINE; i++) + for (i = 0; i < mouse_scroll_line(); i++) ldown1(); } else if (btn == MOUSE_BTN5_DOWN_XTERM) { - for (i = 0; i < MOUSE_SCROLL_LINE; i++) + for (i = 0; i < mouse_scroll_line(); i++) lup1(); } diff --git a/menu.c b/menu.c index b3c3a97..fb1c414 100644 --- a/menu.c +++ b/menu.c @@ -1,4 +1,4 @@ -/* $Id: menu.c,v 1.16 2002/11/05 17:10:07 ukai Exp $ */ +/* $Id: menu.c,v 1.17 2002/11/11 15:33:38 ukai Exp $ */ /* * w3m menu.c */ @@ -1085,7 +1085,6 @@ mSrchP(char c) #define MOUSE_BTN5_DOWN_XTERM 65 #define MOUSE_BTN_UP 3 #define MOUSE_BTN_RESET -1 -#define MOUSE_SCROLL_LINE 5 static int process_mMouse(int btn, int x, int y) diff --git a/rc.c b/rc.c index 4cc0444..cee4643 100644 --- a/rc.c +++ b/rc.c @@ -1,4 +1,4 @@ -/* $Id: rc.c,v 1.60 2002/11/09 21:55:24 ukai Exp $ */ +/* $Id: rc.c,v 1.61 2002/11/11 15:33:39 ukai Exp $ */ /* * Initialization file etc. */ @@ -164,6 +164,9 @@ static char *config_file = NULL; #ifdef USE_MOUSE #define CMT_MOUSE "マウスを使う" #define CMT_REVERSE_MOUSE "マウスのドラッグ動作を逆にする" +#define CMT_RELATIVE_WHEEL_SCROLL "ホイールでのスクロール速度の扱い" +#define CMT_RELATIVE_WHEEL_SCROLL_RATIO "(Aのみ)画面の何%スクロールするか" +#define CMT_FIXED_WHEEL_SCROLL_COUNT "(Bのみ)スクロールする行数" #endif /* USE_MOUSE */ #define CMT_CLEAR_BUF "表示されていないバッファのメモリを開放する" #define CMT_NOSENDREFERER "Referer: を送らないようにする" @@ -310,6 +313,9 @@ static char *config_file = NULL; #ifdef USE_MOUSE #define CMT_MOUSE "Enable mouse" #define CMT_REVERSE_MOUSE "Scroll in reverse direction of mouse drag" +#define CMT_RELATIVE_WHEEL_SCROLL "Behavior of wheel scroll speed" +#define CMT_RELATIVE_WHEEL_SCROLL_RATIO "(A only)Scroll by # % of screen" +#define CMT_FIXED_WHEEL_SCROLL_COUNT "(B only)Scroll by # lines" #endif /* USE_MOUSE */ #define CMT_CLEAR_BUF "Free memory of undisplayed buffers" #define CMT_NOSENDREFERER "Suppress `Referer:' header" @@ -433,6 +439,21 @@ static struct sel_c defaulturls[] = { #endif {0, NULL, NULL} }; +#ifdef USE_MOUSE +static struct sel_c wheelmode[] = +{ +#if LANG == JA + {TRUE, "1", "A:画面サイズに比例"}, + {FALSE, "0", "B:一定の行数"}, + {0, NULL, NULL} +#else /* LANG != JA */ + {TRUE, "1", "A:relative to screen height"}, + {FALSE, "0", "B:fixed speed"}, + {0, NULL, NULL} +#endif /* LANG != JA */ +}; +#endif /* MOUSE */ + #ifdef INET6 static struct sel_c dnsorders[] = { {N_S(DNS_ORDER_UNSPEC), "unspecified"}, @@ -589,6 +610,12 @@ struct param_ptr params3[] = { {"use_mouse", P_INT, PI_ONOFF, (void *)&use_mouse, CMT_MOUSE, NULL}, {"reverse_mouse", P_INT, PI_ONOFF, (void *)&reverse_mouse, CMT_REVERSE_MOUSE, NULL}, + {"relative_wheel_scroll", P_INT, PI_SEL_C, (void *) &relative_wheel_scroll, + CMT_RELATIVE_WHEEL_SCROLL, wheelmode}, + {"relative_wheel_scroll_ratio", P_INT, PI_TEXT, (void *) &relative_wheel_scroll_ratio, + CMT_RELATIVE_WHEEL_SCROLL_RATIO, NULL}, + {"fixed_wheel_scroll_count", P_INT, PI_TEXT, (void *) &fixed_wheel_scroll_count, + CMT_FIXED_WHEEL_SCROLL_COUNT, NULL}, #endif /* USE_MOUSE */ {"clear_buffer", P_INT, PI_ONOFF, (void *)&clear_buffer, CMT_CLEAR_BUF, NULL}, diff --git a/terms.h b/terms.h index ca7bce7..05ebc39 100644 --- a/terms.h +++ b/terms.h @@ -1,4 +1,4 @@ -/* $Id: terms.h,v 1.5 2001/12/12 17:04:21 ukai Exp $ */ +/* $Id: terms.h,v 1.6 2002/11/11 15:33:40 ukai Exp $ */ #ifndef TERMS_H #define TERMS_H @@ -37,7 +37,6 @@ extern int LINES, COLS; #define MOUSE_BTN5_DOWN_XTERM 65 #define MOUSE_BTN_UP 3 #define MOUSE_BTN_RESET -1 -#define MOUSE_SCROLL_LINE 5 #ifdef __CYGWIN__ extern int is_xterm; -- cgit v1.2.3