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
6 if (rtype == MouseX11) val = 3;
10 + if (btn & WheelDown) val |= 1;
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
22 -enum MouseType { Press = 0, Release, DblClick, Move };
23 +enum MouseType { Press = 0, Release, DblClick, Move, Wheel };
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
37 Gpm_Event *ev = (Gpm_Event*)buf;
38 s32 type = -1, buttons = 0;
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;
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;
55 if (newx == x && newy == y && !(buttons & MouseButtonMask)) return;