1 diff -r 4399ffb6a87c doc/rxvt.1.pod
2 --- a/doc/rxvt.1.pod Sat Jan 21 13:57:22 2012 +0100
3 +++ b/doc/rxvt.1.pod Sat Jan 21 14:03:04 2012 +0100
5 Turn on/off secondary screen scroll (default enabled); resource
10 +Turn on/off secondary screen wheel support (default disabled); resource
13 =item B<-hold>|B<+hold>
15 Turn on/off hold window after exit support. If enabled, @@RXVT_NAME@@
16 @@ -1168,6 +1173,13 @@
17 scrollback buffer and, when secondaryScreen is off, switching
18 to/from the secondary screen will instead scroll the screen up.
20 +=item B<secondaryWheel:> I<boolean>
22 +Turn on/off secondary wheel (default disabled). If enabled, when on
23 +secondary screen, using the mouse wheel will not scroll in the buffer
24 +but instead send 3 "fake" keystrokes (Up/Down arrow) to the running
25 +application (allows e.g. natural scrolling in B<man>, B<less>, etc).
27 =item B<hold>: I<boolean>
29 Turn on/off hold window after exit support. If enabled, @@RXVT_NAME@@
30 diff -r 4399ffb6a87c src/command.C
31 --- a/src/command.C Sat Jan 21 13:57:22 2012 +0100
32 +++ b/src/command.C Sat Jan 21 14:03:04 2012 +0100
33 @@ -2197,10 +2197,46 @@
37 +#ifndef NO_SECONDARY_SCREEN
41 + /* on SECONDARY screen, we send "fake" UP/DOWN keys instead
42 + * (this allows to scroll within man, less, etc) */
43 + if (option (Opt_secondaryWheel) && current_screen != PRIMARY)
46 + event.display = ev.display;
47 + event.window = ev.window;
48 + event.root = ev.root;
49 + event.subwindow = ev.subwindow;
50 + event.time = ev.time;
53 + event.x_root = ev.x_root;
54 + event.y_root = ev.y_root;
55 + event.same_screen = ev.same_screen;
57 + event.keycode = XKeysymToKeycode(ev.display,
58 + (v == UP) ? XK_Up : XK_Down);
59 + for (i = 0; i < 3; ++i)
61 + event.type = KeyPress;
62 + XSendEvent (event.display, event.window, TRUE,
63 + KeyPressMask, (XEvent *) &event);
64 + event.type = KeyRelease;
65 + XSendEvent (event.display, event.window, TRUE,
66 + KeyPressMask, (XEvent *) &event);
69 + /* on PRIMARY screen, we scroll in the buffer */
76 +#ifndef NO_SECONDARY_SCREEN
82 diff -r 4399ffb6a87c src/optinc.h
83 --- a/src/optinc.h Sat Jan 21 13:57:22 2012 +0100
84 +++ b/src/optinc.h Sat Jan 21 14:03:04 2012 +0100
93 diff -r 4399ffb6a87c src/rsinc.h
94 --- a/src/rsinc.h Sat Jan 21 13:57:22 2012 +0100
95 +++ b/src/rsinc.h Sat Jan 21 14:03:04 2012 +0100
97 #ifndef NO_SECONDARY_SCREEN
100 + def (secondaryWheel)
102 #ifdef OFF_FOCUS_FADING
104 diff -r 4399ffb6a87c src/xdefaults.C
105 --- a/src/xdefaults.C Sat Jan 21 13:57:22 2012 +0100
106 +++ b/src/xdefaults.C Sat Jan 21 14:03:04 2012 +0100
108 #ifndef NO_SECONDARY_SCREEN
109 BOOL (Rs_secondaryScreen, "secondaryScreen", "ssc", Opt_secondaryScreen, 0, "enable secondary screen"),
110 BOOL (Rs_secondaryScroll, "secondaryScroll", "ssr", Opt_secondaryScroll, 0, "enable secondary screen scroll"),
111 + BOOL (Rs_secondaryWheel, "secondaryWheel", "ssw", Opt_secondaryWheel, 0, "enable secondary screen wheel"),
114 RSTRG (Rs_perl_lib, "perl-lib", "string"), //, "colon-separated directories with extension scripts"),TODO