updated on Sat Jan 21 16:18:39 UTC 2012
[aur-mirror.git] / rxvt-unicode-better-wheel-scrolling / secondaryWheel.patch
blobb588b53527fa914aa6eb767e5af763f280bf312f
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
4 @@ -456,6 +456,11 @@
5 Turn on/off secondary screen scroll (default enabled); resource
6 B<secondaryScroll>.
8 +=item B<-ssw>|B<+ssw>
10 +Turn on/off secondary screen wheel support (default disabled); resource
11 +B<secondaryWheel>.
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 @@
35 else
36 # endif
37 +#ifndef NO_SECONDARY_SCREEN
39 - scr_page (v, i);
40 - scrollBar.show (1);
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)
44 + {
45 + XKeyEvent event;
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;
51 + event.x = ev.x;
52 + event.y = ev.y;
53 + event.x_root = ev.x_root;
54 + event.y_root = ev.y_root;
55 + event.same_screen = ev.same_screen;
56 + event.state = 0;
57 + event.keycode = XKeysymToKeycode(ev.display,
58 + (v == UP) ? XK_Up : XK_Down);
59 + for (i = 0; i < 3; ++i)
60 + {
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);
67 + }
68 + }
69 + /* on PRIMARY screen, we scroll in the buffer */
70 + else
71 +#endif
72 + {
73 + scr_page (v, i);
74 + scrollBar.show (1);
75 + }
76 +#ifndef NO_SECONDARY_SCREEN
78 +#endif
80 break;
81 #endif
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
85 @@ -26,6 +26,7 @@
86 def(cursorBlink)
87 def(secondaryScreen)
88 def(secondaryScroll)
89 + def(secondaryWheel)
90 def(pastableTabs)
91 def(cursorUnderline)
92 #if ENABLE_FRILLS
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
96 @@ -102,6 +102,7 @@
97 #ifndef NO_SECONDARY_SCREEN
98 def (secondaryScreen)
99 def (secondaryScroll)
100 + def (secondaryWheel)
101 #endif
102 #ifdef OFF_FOCUS_FADING
103 def (fade)
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
107 @@ -261,6 +261,7 @@
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"),
112 #endif
113 #if ENABLE_PERL
114 RSTRG (Rs_perl_lib, "perl-lib", "string"), //, "colon-separated directories with extension scripts"),TODO