]>
Commit | Line | Data |
---|---|---|
82002a71 | 1 | diff -Nru fbterm-1.2/src/lib/shell.cpp fbterm-1.2.new/src/lib/shell.cpp |
2 | --- fbterm-1.2/src/lib/shell.cpp 2008-10-12 11:50:02.000000000 +0200 | |
3 | +++ fbterm-1.2.new/src/lib/shell.cpp 2008-12-16 19:50:29.000000000 +0100 | |
4 | @@ -142,6 +142,10 @@ | |
5 | case Release: | |
6 | if (rtype == MouseX11) val = 3; | |
7 | break; | |
8 | + case Wheel: | |
9 | + val = 64; | |
10 | + if (btn & WheelDown) val |= 1; | |
11 | + break; | |
12 | default: | |
13 | break; | |
14 | } | |
15 | diff -Nru fbterm-1.2/src/lib/shell.h fbterm-1.2.new/src/lib/shell.h | |
16 | --- fbterm-1.2/src/lib/shell.h 2008-10-12 11:50:02.000000000 +0200 | |
17 | +++ fbterm-1.2.new/src/lib/shell.h 2008-12-16 19:21:55.000000000 +0100 | |
18 | @@ -23,11 +23,13 @@ | |
19 | #include "io.h" | |
20 | #include "vterm.h" | |
21 | ||
22 | -enum MouseType { Press = 0, Release, DblClick, Move }; | |
23 | +enum MouseType { Press = 0, Release, DblClick, Move, Wheel }; | |
24 | ||
25 | enum ButtonState { | |
26 | NoButton = 0x0000, | |
27 | LeftButton = 0x0001, | |
28 | + WheelDown = 0x0001, | |
29 | + WheelUp = 0x0002, | |
30 | RightButton = 0x0002, | |
31 | MidButton = 0x0004, | |
32 | MouseButtonMask = 0x0007, | |
33 | diff -Nru fbterm-1.2/src/mouse.cpp fbterm-1.2.new/src/mouse.cpp | |
34 | --- fbterm-1.2/src/mouse.cpp 2008-10-12 11:50:02.000000000 +0200 | |
35 | +++ fbterm-1.2.new/src/mouse.cpp 2008-12-16 19:43:09.000000000 +0100 | |
36 | @@ -101,7 +101,8 @@ | |
37 | Gpm_Event *ev = (Gpm_Event*)buf; | |
38 | s32 type = -1, buttons = 0; | |
39 | ||
40 | - if ((ev->type & GPM_MOVE) || (ev->type & GPM_DRAG)) type = Move; | |
41 | + if (ev->wdy) type = Wheel; | |
42 | + else if ((ev->type & GPM_MOVE) || (ev->type & GPM_DRAG)) type = Move; | |
43 | else if (ev->type & GPM_DOWN) type = (ev->type & GPM_DOUBLE) ? DblClick : Press; | |
44 | else if (ev->type & GPM_UP) type = Release; | |
45 | if (type == -1) return; | |
46 | @@ -121,6 +122,10 @@ | |
47 | if (newy < 0) newy = 0; | |
48 | if (newx >= maxx) newx = maxx - 1; | |
49 | if (newy >= maxy) newy = maxy - 1; | |
50 | + if (type == Wheel) { | |
51 | + if (ev->wdy < 0) buttons |= WheelDown; | |
52 | + else buttons |= WheelUp; | |
53 | + } | |
54 | ||
55 | if (newx == x && newy == y && !(buttons & MouseButtonMask)) return; | |
56 |