aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorFumitoshi UKAI <ukai@debian.or.jp>2002-11-26 03:42:28 +0000
committerFumitoshi UKAI <ukai@debian.or.jp>2002-11-26 03:42:28 +0000
commit5ca2ac597ba4e9f0f5bc63bf88b63871fb8ce7e3 (patch)
treea0b25aa23277f0f2b283939160ad6f79b2d1ed3a /main.c
parent* NEWS: func: CLOSE_TAB_MOUSE, MENU_MOUSE, MOVE_MOUSE, TAB_MOUSE (diff)
downloadw3m-5ca2ac597ba4e9f0f5bc63bf88b63871fb8ce7e3.tar.gz
w3m-5ca2ac597ba4e9f0f5bc63bf88b63871fb8ce7e3.zip
[w3m-dev 03485] fix mouse menu position
* main.c (do_mouse_action): use anchor_map is no active_map check top left corner (FRAME_WIDTH): added (menuMs): adjust cursorX using FRAME_WIDTH From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
Diffstat (limited to '')
-rw-r--r--main.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/main.c b/main.c
index eb70805..8166f42 100644
--- a/main.c
+++ b/main.c
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.154 2002/11/25 16:59:07 ukai Exp $ */
+/* $Id: main.c,v 1.155 2002/11/26 03:42:28 ukai Exp $ */
#define MAINPROGRAM
#include "fm.h"
#include <signal.h>
@@ -4864,14 +4864,26 @@ do_mouse_action(int btn, int x, int y)
#endif /* JP_CHARSET */
)) {
if (retrieveCurrentAnchor(Currentbuf) ||
- retrieveCurrentForm(Currentbuf))
+ retrieveCurrentForm(Currentbuf)) {
map = &mouse_action.active_map[btn];
+ if (!(map && map->func))
+ map = &mouse_action.anchor_map[btn];
+ }
}
else {
int cx = Currentbuf->cursorX, cy = Currentbuf->cursorY;
cursorXY(Currentbuf, x - Currentbuf->rootX, y - Currentbuf->rootY);
- if (retrieveCurrentAnchor(Currentbuf) ||
- retrieveCurrentForm(Currentbuf))
+ if (y == Currentbuf->cursorY + Currentbuf->rootY &&
+ (x == Currentbuf->cursorX + Currentbuf->rootX
+#ifdef JP_CHARSET
+ || (Currentbuf->currentLine != NULL &&
+ (Currentbuf->currentLine->
+ propBuf[Currentbuf->pos] & PC_KANJI1)
+ && x == Currentbuf->cursorX + Currentbuf->rootX + 1)
+#endif /* JP_CHARSET */
+ ) &&
+ (retrieveCurrentAnchor(Currentbuf) ||
+ retrieveCurrentForm(Currentbuf)))
map = &mouse_action.anchor_map[btn];
cursorXY(Currentbuf, cx, cy);
}
@@ -5112,6 +5124,11 @@ movMs(void)
}
#ifdef USE_MENU
+#ifdef KANJI_SYMBOLS
+#define FRAME_WIDTH 2
+#else
+#define FRAME_WIDTH 1
+#endif
void
menuMs(void)
{
@@ -5119,7 +5136,7 @@ menuMs(void)
return;
if ((nTab > 1 || mouse_action.menu_str) &&
mouse_action.cursorY < LastTab->y + 1)
- mouse_action.cursorX -= 2;
+ mouse_action.cursorX -= FRAME_WIDTH + 1;
else if (mouse_action.cursorX >= Currentbuf->rootX &&
mouse_action.cursorY < LASTLINE) {
cursorXY(Currentbuf, mouse_action.cursorX - Currentbuf->rootX,